leetcode 3. 无重复字符的最长子串
给定一个字符串 s
,请你找出其中不含有重复字符的 最长子串 的长度。
代码:
class Solution { public: int lengthOfLongestSubstring(string s) { int start = 0; int maxCnt = 0; for(int i = 0;i<s.size();i++) { for(int j = start;j<i;j++) { if(s[i] == s[j]) { start = j+1; break; } } maxCnt = max(maxCnt,i-start+1); } return maxCnt; } };
unordered_map实现:
class Solution { public: int lengthOfLongestSubstring(string s) { int start = 0; int maxCnt = 0; unordered_map<char,int>cnt; for(int i = 0;i<s.size();i++) { cnt[s[i]]++; while(start<i && cnt[s[i]]>1){ cnt[s[start++]]--; } maxCnt = max(maxCnt,i-start+1); } return maxCnt; } };
以大多数人努力程度之低,根本轮不到去拼天赋~