3. Longest Substring Without Repeating Characters
題目原文
Given a string, find the length of the longest substring without repeating characters.
Example 1:
Input: "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.
Example 2:
Input: "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.
Example 3:
Input: "pwwkew"
Output: 3
Explanation: 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.
解題思路
程式解答
class Solution
{
public:
int lengthOfLongestSubstring(string s)
{
std::map<char, int> p;
std::map<char, int>::iterator it;
int size = s.length();
int length = 0;
for (int j = 0, i = 0; j < size; j++)
{
if ((it = p.find(s[j])) != p.end())
i = std::max(it->second, i);
p[s[j]] = j + 1;
length = std::max(length, j - i + 1);
}
return length;
}
};
Last updated
Was this helpful?