LC 3. Longest Substring Without Repeating Characters
Posted kykai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LC 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.
参考答案
1 class Solution 2 public: 3 int lengthOfLongestSubstring(string s) 4 5 unordered_map<char,int> map; 6 int res = 0; 7 int start = -1; // 存储开始的位置,如果完全没有重复的字符,那么开始位置永远是-1 8 9 for(int i = 0;i<s.length();i++) 10 if(map.find(s[i]) != map.end()) 11 start = max(start,map[s[i]]); 12 // 如果通过find 找到了一个重复的 13 // 那么就把start给替换成 上一个重复字符的index 14 15 map[s[i]] = i; // map[char] = index; 16 res = max(res,i-start); // 获得最大值 17 18 return res; 19 20 ;
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.
以上是关于LC 3. Longest Substring Without Repeating Characters的主要内容,如果未能解决你的问题,请参考以下文章
ICS计算系统概论实验3—LC3汇编代码实现最长重复子字符串Longest-duplicate-substring
[LC] 159. Longest Substring with At Most Two Distinct Characters
LC1044. Longest Duplicate Substring最长重复子串:二分答案 + 滚动哈希
Longest Substring Without Repeating Characters