您的位置:首页 > 其它

[LeetCode 解题报告]003.Longest Substring Without Repeating Characters

2017-05-23 20:31 447 查看
Description:

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.

算法思想:思想类似[编程之美-02]字符串的包含问题
中的高效解法,向int数组进行哈希。

class Solution {
public:
int lengthOfLongestSubstring(string s) {

int maxLength = 0, count[128] = {0}, i, j;

for(i = 0, j = 0; i < s.length(); i++) {

if(count[s[i]] == 1) {
maxLength = max(maxLength, i-j);
while(s[j] != s[i]) {
count[s[j]] = 0;
j ++;
}
j ++;
}
else
count[s[i]] = 1;
}

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