当前位置:网站首页>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 <( ̄︶ ̄)>
边栏推荐
- Cut ffmpeg as needed, and use emscripten to compile and run
- 【原创】一切不谈考核的管理都是扯淡!
- 什麼是數據泄露
- 最安全的证券交易app都有哪些
- 【數字IC驗證快速入門】20、SystemVerilog學習之基本語法7(覆蓋率驅動...內含實踐練習)
- 2. 堆排序『较难理解的排序』
- What are the safest securities trading apps
- [server data recovery] data recovery case of raid failure of a Dell server
- 2. Heap sort "hard to understand sort"
- Summer safety is very important! Emergency safety education enters kindergarten
猜你喜欢

webgl_ Enter the three-dimensional world (1)

Getting started with webgl (1)

Steps to create P8 certificate and warehousing account

Bye, Dachang! I'm going to the factory today
Window环境下配置Mongodb数据库

Do you know the relationship between the most important indicators of two strong wind control and the quality of the customer base

What is Base64?

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

The difference between full-time graduate students and part-time graduate students!

【深度学习】图像超分实验:SRCNN/FSRCNN
随机推荐
Streaming end, server end, player end
Cocos creator collision and collision callback do not take effect
避坑:Sql中 in 和not in中有null值的情况说明
What are the safest securities trading apps
Use cpolar to build a business website (2)
webgl_ Graphic transformation (rotation, translation, zoom)
Cut ffmpeg as needed, and use emscripten to compile and run
[quick start for Digital IC Validation] 26. Ahb - sramc (6) for system verilog project practice (Basic Points of APB Protocol)
Configure mongodb database in window environment
[quick start of Digital IC Verification] 29. Ahb-sramc (9) (ahb-sramc svtb overview) of SystemVerilog project practice
Introduction of mongod management database method
[quick start of Digital IC Verification] 20. Basic grammar of SystemVerilog learning 7 (coverage driven... Including practical exercises)
Annexb and avcc are two methods of data segmentation in decoding
Super simple and fully automated generation super signature system (cloud Xiaoduo minclouds.com cloud service instance), free application in-house test app distribution and hosting platform, maintenan
MongoD管理数据库的方法介绍
How to deploy the super signature distribution platform system?
居然从408改考自命题!211华北电力大学(北京)
Share the technical details of super signature system construction
微信小程序 01
[deep learning] semantic segmentation experiment: UNET network /msrc2 dataset