题解 | #最长不含重复字符的子字符串#

最长不含重复字符的子字符串

https://www.nowcoder.com/practice/48d2ff79b8564c40a50fa79f9d5fa9c7

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return int整型
     */
    int lengthOfLongestSubstring(string s) {
        // write code here
        int n = s.size();
     
        if(n == 0){
            return 0;
        }
        vector<int> dp(n,1);
        int max_len = 1;
        for(int i = 1;i<n;i++)
        {
           //从s[i]开始寻找第一个与s[j]相同的字符
           int j = i - 1;
           for(;j>=0;j--)
           {
            if(s[j] == s[i]){
                break;
            }
           }
           if(j <= i-1 - dp[i-1]){
            dp[i] = dp[i-1] + 1;
           }
           else{
            dp[i] = i - j;
           }
           max_len = max(max_len,dp[i]);
        }
        return max_len;
    }
};

我一次就oc了,我太棒了,我学会这个思路了!

全部评论

相关推荐

头像
04-09 14:29
Java
点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务