刷题笔记--LeetCode 3. 无重复字符的最长子串

给定一个字符串,找出不含有重复字符的最长子串的长度。

示例:

给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。

给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。

给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串"pwke" 是 子序列  而不是子串。



class Solution {
public:
    bool isrepeatSubtring(string *str,string cur){
        int l=(*str).length();
        if(l==0)
            return false;
        for(int i=0;i<l;i++){
            string a=(*str).substr(i,1);
            if(cur==a){
                i++;
                if(i!=l)
                 (*str)=(*str).substr(i,l-i);
                else
                 (*str)="";
               (*str)+=cur;
                return true;
            }
        }
        return false;
    }
    int lengthOfLongestSubstring(string c) {
        string substring;
       string cur;
        int length,Max=0;
        if(!c[0])
        return 0;
        for(int i=0;i<c.length();i++){
            cur=c[i];
            if(isrepeatSubtring(&substring,cur)==false){
                substring+=cur;
            }
                length=substring.length();
                Max=Max>length?Max:length; 
        }
         return Max;
    }

};


本题遇到的问题

问题string str; 长度 为str.length()  注意括号;

  char c[100000]; c不可为char * 类型?
  strcpy(c,s.c_str());
 字串存在回溯 时间限制
 string 指针

string 为类 length为类方法是函数,函数必须有()

char 与string的转换

猜你喜欢

转载自blog.csdn.net/y2052/article/details/80098322
今日推荐