[这个问题之前面试中有问到过,还是值得学习下的~]
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.
刚开始想的有点复杂,甚至想到了用map去存储,后来发现根本不需要额,直接比较即可。其实本题难度不大。参考代码如下。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
if(s=="")
return 0;
int max=0;
int begin=0;
int sum=0;
for (int i = 1; i < s.size(); ++i)
{
for(int j=begin;j<i;j++)
{
if(s[i]==s[j])
{
sum=i-begin;
if(sum>max)
max=sum;
begin=j+1;
break;
}
}
}
return max>s.size()-begin?max:s.size()-begin;
}
};
982 / 982 test cases passed.
Status: Accepted
Runtime: 16 ms