字符串相关数组和函数
无重复子串 Leetcode_3
思路: 用hashmap巧妙地去记录 各个字符上次出现的位置. 注意,当位置出现在0的时候,我们该如何考虑?
class Solution {
public:
int lengthOfLongestSubstring(string s) {
unordered_map<char,int> hashMap;
int max_len=0;
int tmp_len=0;
int tmp_start_idx=0;
for(int i=1;i<s.length()+1;i++)
{
if(hashMap.count(s[i-1]))
{
if(hashMap[s[i-1]]>tmp_start_idx)
{
tmp_start_idx = hashMap[s[i-1]];
}
}
hashMap[s[i-1]]=i;
if(i-tmp_start_idx>max_len)
{
max_len=i-tmp_start_idx;
}
}
return max_len;
}
};
得到所有组合的问题通常需要递归来解决.