首页 > 代码库 > LeetCode Algorithm
LeetCode Algorithm
LeetCode Algorithm
原文出处:【LeetCode】
算法参考:【陈皓 coolshell】
3.Longest Substring Without Repeating Characters
3.Longest Substring Without Repeating Characters
/********************************************************** ** 3.Longest Substring Without Repeating Characters ** 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. **********************************************************/ #include <string> #include <iostream> #include <map> using namespace std; int lengthOfLongestSubstring(string s) { int longestLen = 0; int lastRepeatPos = -1; map<char, int> matchCharacters; for (int i=0; i<s.size(); ++i) { if (matchCharacters.find(s[i]) != matchCharacters.end() && lastRepeatPos < matchCharacters[s[i]]) { lastRepeatPos = matchCharacters[s[i]]; } if (i-lastRepeatPos > longestLen) { longestLen = i-lastRepeatPos; } matchCharacters[s[i]] = i; } return longestLen; } //-----example----- int main(int arc, char ** argv) { string s = "abcabcbb"; cout << s << ":" << lengthOfLongestSubstring(s) << endl; s = "bbbbb"; cout << s << ":" << lengthOfLongestSubstring(s) << endl; s = "pwwkew"; cout << s << ":" << lengthOfLongestSubstring(s) << endl; return 0; } //-----output----- //abcabcbb:3 //bbbbb:1 //pwwkew:3
LeetCode Algorithm
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。