您的位置:首页 > 编程语言 > C语言/C++

leetcode 3. Longest Substring Without Repeating Characters

2017-05-07 20:52 369 查看
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.

解:需要采用在线处理的方法,同时还要记录没哟个字符是否读取过,这可以使用map,其实看他人的solution也可以vector容器,都是同一种思路。
代码:class Solution {
public:
int lengthOfLongestSubstring(string s) {
map<int, int> hashMap;
int len = s.length();
int head = -1;
int maxlen = 0;
for(int i = 0; i < len; i++){
hashMap[s[i]] = -1;
}
for(int i = 0; i < len; i++){
if(hashMap[s[i]] > head){
head = hashMap[s[i]];
}
hashMap[s[i]] = i;
maxlen = max(maxlen, i - head);
}
return maxlen;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 算法 leetcode string