Leetcode 3 Longest Substring Without Repeating Characters

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

感觉有点像细节实现题,很多细节注意下就好了,我的想法就是定一个开端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;
    }
};



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值