过去会遗忘,现在不会

无重复最长字串

滑动窗口类型的,

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
int l=0;int r=0;int length=0;
string ans;
while(r<s.size())
{
    if(ans.find(s[r])==string::npos) 
    {
        ans+=s[r++];
        cout<<ans<<' ';
        length=length>ans.size()?length:ans.size();
    }
    else 
    {
        while(ans.find(s[r])!=string::npos) ans.erase(0,1);
        l++;
        ans+=s[r++];
        cout<<ans<<' ';
        length=length>ans.size()?length:ans.size();
    }
}

return length;
    }
};

好像代码可以简化下

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
int l=0;int r=0;int length=0;
string ans;
while(r<s.size())
{
while(ans.find(s[r])!=string::npos) 
    {
        ans.erase(0,1);
    }
        ans+=s[r++];
        cout<<ans<<' ';
        length=length>ans.size()?length:ans.size();
}

return length;
    }
};

后面继续研究。

posted on 2023-06-21 04:01  WhatAnyWay  阅读(13)  评论(0)    收藏  举报