您的位置:首页 > 其它

[LeetCode]3. Longest Substring Without Repeating Characters

2016-09-24 09:38 525 查看
Given a string, find the length of the longest substring without

repeating characters.

Examples:

Given “abcabcbb”, the answer is “abc”, which the length is 3.

Given “bbbbb”, the answer is “b”, with the length of 1.

Given “pwwkew”, the answer is “wke”, with the length of 3.

Note that the answer must be a substring, “pwke” is a subsequence and not a

substring.

class Solution {
public:
int lengthOfLongestSubstring(string s) {
int sizeOfS = s.size();
if(sizeOfS <= 1)
return sizeOfS;
int nowLen = 0,iOfS = 0,longestLen = 0;
string subStr;
for(int i = 0; i < sizeOfS; ++i){
auto iOfR = subStr.find(s[i]);//子串中和s[i]重复的位置
if(iOfR == string::npos){
subStr += s[i];
++ nowLen;
}
else{
nowLen = 0;
//由于循环前i还会++,所以这里i定位于重复字母在s中的下标
i = iOfS +iOfR;
iOfS = i + 1;
subStr = "";
}
if(nowLen > longestLen)
longestLen = nowLen;
}
return longestLen;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode