您的位置:首页 > 其它

leetcode Longest Substring Without Repeating Characters

2016-08-07 20:48 399 查看
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.

这道题的意思就是找到一个字符串不出现重复字符的最大长度。思路是:用一个指针(抽象意义的表述)定位在字符串头,然后用另一个指针后移,每后移以为判断新加入的字符是否跟前面的重复,如果不重复,跟新max,继续后移。如果有相同的,把定位在开头的指针移到重复字符的后一位,重复上述步骤即可。

class Solution {
public:
int lengthOfLongestSubstring(string s) {
int mx = 0;
int i = 0;
int j = i+1;
if(s.size() == 1) return 1;
while(i<j && j<s.size()){
bool flag = false;
int k;
for(k = i; k< j; k++){
if(s[k] == s[j]){
flag = true;
break;
}
}
if(flag){

mx = max(mx,j-i);
i = k+1;
j++;
}else{
j++;
mx = max(mx, j-i);
}
}

return mx;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode