当前位置:网站首页>LeetCode3_ Longest substring without duplicate characters
LeetCode3_ Longest substring without duplicate characters
2022-07-07 15:42:00 【WhiteTian】
Original article , Reprint please indicate the source .
Topic type : secondary
C++ Explain Addition of two numbers
The title is as follows
Given a string , Please find out that there are no duplicate characters in it Longest substrings The length of .
Example 1:
Input : s = "abcabcbb"
Output : 3
explain : Because the longest substring without repeating characters is "abc", So its length is 3.
Example 2:
Input : s = "bbbbb"
Output : 1
explain : Because the longest substring without repeating characters is "b", So its length is 1.
Example 3:
Input : s = "pwwkew"
Output : 3
explain : Because the longest substring without repeating characters is "wke", So its length is 3.
Please note that , Your answer must be Substring The length of ,"pwke" Is a subsequence , Not substring .
Example 4:
Input : s = ""
Output : 0
Tips :
0 <= s.length <= 5 * 104
s By the English letters 、 Numbers 、 Symbols and spaces
solution
Ideas :
The main idea of this problem is : The sliding window
What is a sliding window ?
It's actually a queue , For example, in the example abcabcbb, Enter this line ( window ) by abc Meet the requirements of the topic ,
When you enter a, The queue becomes abca, Not meeting the requirements at this time . therefore , We're going to move this queue !
How to move ?
All we have to do is move the elements on the left side of the queue , Until the subject requirements are met !
Keep this line up all the time , Find out the maximum length of the queue , Find out the solution !
Time complexity :O(n)
The code implementation is as follows
class Solution {
public:
int lengthOfLongestSubstring(string s) {
// String length
int nLen = s.length();
// Character hash set , The same characters are not allowed
unordered_set<char> chardata;
// Index started , Maximum length
int nStart = -1, nMax = 0;
for(int i = 0; i < nLen; i++)
{
// The sliding window , Every time remove Drop the first character
if(i != 0)
{
//leetcode It must be written in this way :chardata.erase(s[i-1]), use //chardata.erase(chardata.begin()); incorrect .
chardata.erase(s[i-1]);
//VC++ In the environment //chardata.erase(chardata.begin()); Yes.
//chardata.erase(chardata.begin());
}
// Add non repeating characters in turn
while(nStart+1 < nLen && chardata.count(s[nStart+1]) == 0)
{
chardata.insert(s[nStart+1]);
++nStart;
}
// Calculate the maximum length
nMax < chardata.size() ? nMax = chardata.size() : nMax;
// Check whether the maximum length under the current cycle has been reached
if(nMax == nLen-i) break;
}
return nMax;
}
};
leetcode score
thank you , It's not easy to create , Great Xia, please stay … Move your lovely hands , Give me a compliment before you go <( ̄︶ ̄)>
边栏推荐
- 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
- Unity's ASE realizes cartoon flame
- What is Base64?
- Implementation of crawling web pages and saving them to MySQL using the scrapy framework
- Syntax of generator function (state machine)
- Zhongang Mining: Fluorite continues to lead the growth of new energy market
- [deep learning] image hyperspectral experiment: srcnn/fsrcnn
- 【数字IC验证快速入门】22、SystemVerilog项目实践之AHB-SRAMC(2)(AMBA总线介绍)
- [quick start of Digital IC Verification] 19. Basic grammar of SystemVerilog learning 6 (thread internal communication... Including practical exercises)
- Jacobo code coverage
猜你喜欢
【数字IC验证快速入门】29、SystemVerilog项目实践之AHB-SRAMC(9)(AHB-SRAMC SVTB Overview)
【目标检测】YOLOv5跑通VOC2007数据集
webgl_ Graphic transformation (rotation, translation, zoom)
Write a ten thousand word long article "CAS spin lock" to send Jay's new album to the top of the hot list
Keil5 does not support online simulation of STM32 F0 series
[quick start of Digital IC Verification] 18. Basic grammar of SystemVerilog learning 5 (concurrent threads... Including practical exercises)
2022 all open source enterprise card issuing network repair short website and other bugs_ 2022 enterprise level multi merchant card issuing platform source code
unnamed prototyped parameters not allowed when body is present
[quick start of Digital IC Verification] 22. Ahb-sramc of SystemVerilog project practice (2) (Introduction to AMBA bus)
2022年5月互联网医疗领域月度观察
随机推荐
HW primary flow monitoring, what should we do
HPDC smart base Talent Development Summit essay
Getting started with webgl (2)
HW初级流量监控,到底该怎么做
Share the technical details of super signature system construction
2. Heap sort "hard to understand sort"
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
【数字IC验证快速入门】25、SystemVerilog项目实践之AHB-SRAMC(5)(AHB 重点回顾,要点提炼)
Implementation of crawling web pages and saving them to MySQL using the scrapy framework
[markdown grammar advanced] make your blog more exciting (IV: set font style and color comparison table)
【跟着江科大学Stm32】STM32F103C8T6_PWM控制直流电机_代码
OpenGL's distinction and understanding of VAO, VBO and EBO
Introduction of mongod management database method
Getting started with webgl (1)
[Data Mining] Visual Pattern Mining: Hog Feature + cosinus Similarity / K - means Clustering
The rebound problem of using Scrollview in cocos Creator
Oracle控制文件丢失恢复归档模式方法
Typescript release 4.8 beta
The download button and debug button in keil are grayed out
Briefly describe the working principle of kept