Leetcode 3 Longest Substring Without Repeating Characters

来源:互联网 发布:c语言图形函数库 编辑:程序博客网 时间:2024/06/05 17:22

题意:给一个字符串,求不含相同字符的最大字符串长度。

感觉有点像细节实现题,很多细节注意下就好了,我的想法就是定一个开端beg和拓展长度ans,从ans开始搜索,如果下一位没有在当前选定字符串中出现,那么就ans++扩大子串范围,如果遇到了一位在选定字符串中出现,那么就将我们的开端定到这个重复的字符的下一位继续搜索,每一次都会刷新ans的值求原ans和现ans的最大值,最后得出结果

class Solution {public:    int lengthOfLongestSubstring(string s) {        string sb;        int n=s.length();        if(!n)            return 0;        int ans,maxn,beg=0;        ans=maxn=1;        while(beg+ans<n)        {            sb=s.substr(beg,ans);            for(int j=0;j<sb.length();j++)            {                if(sb[j]==s[beg+ans])                {                    beg+=(j+1);                    ans-=(j+1);//beg=j+1                }                    }            ans++;            maxn=max(maxn,ans);        }        return maxn;    }};



阅读全文
0 0