leetcode Longest Substring Without Repeating Characters

来源:互联网 发布:淘宝卖家贷款在哪里 编辑:程序博客网 时间:2024/05/16 19:32

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;    }};
0 0