給定一個(gè)字符串 s ,請(qǐng)你找出其中不含有重復(fù)字符的 最長(zhǎng)子串 的長(zhǎng)度。
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司,提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,是專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!來源:力扣(LeetCode)
鏈接:https://leetcode.cn/problems/longest-substring-without-repeating-characters
輸入輸出樣例示例 1:
輸入: s = "abcabcbb"
輸出: 3
解釋: 因?yàn)闊o重復(fù)字符的最長(zhǎng)子串是 "abc",所以其長(zhǎng)度為 3。
示例 2:
輸入: s = "bbbbb"
輸出: 1
解釋: 因?yàn)闊o重復(fù)字符的最長(zhǎng)子串是 "b",所以其長(zhǎng)度為 1。
示例 3:
輸入: s = "pwwkew"
輸出: 3
解釋: 因?yàn)闊o重復(fù)字符的最長(zhǎng)子串是 "wke",所以其長(zhǎng)度為 3。
請(qǐng)注意,你的答案必須是 子串 的長(zhǎng)度,"pwke" 是一個(gè)子序列,不是子串。
題解先上代碼,本題采用C++語言編寫,涉及的內(nèi)容主要有:unordered_set(hash集合),多循環(huán)判斷。
int lengthOfLongestSubstring(string s) {
int i = 0,j = 0,temp=0;
? ? ? ? //循環(huán)所需變量以及求大值時(shí)所需的temp交換變量
while(i!=s.size()){
unordered_setocc;
? ? ? ? ? ? //設(shè)置s.size次循環(huán),在每個(gè)循環(huán)中定義一次hash集合
int num = 0;
? ? ? ? ? ? //num變量用于記錄子串長(zhǎng)度
for(j=i;j0){
break;
}
? ? ? ? ? ? ? ? //判斷hash集合中的該元素個(gè)數(shù),大于零意味著重復(fù),跳出循環(huán)
occ.insert(s[j]);
? ? ? ? ? ? ? ? //將元素添加到hash集合中
num++;
}
i++;
if(num>temp){
temp=num;
}
? ? ? ? ? ? //判斷與交換變量大小來求大值
}
return temp;
}
分析主要思路:主體兩次循環(huán)。第一個(gè)循環(huán)是num的次數(shù),num的次數(shù)應(yīng)為子串的可能出現(xiàn)的長(zhǎng)度,例如s="abcd",子串可能的長(zhǎng)度為1、2、3、4,故num為4;第二個(gè)循環(huán)是遍歷字符串,并將元素添加到hash集合中。
時(shí)間復(fù)雜度:O()
總結(jié)本人是編程小白,還未系統(tǒng)的學(xué)習(xí)過算法,代碼還有很大改進(jìn)的空間,歡迎大家批評(píng)與建議,但是我覺得對(duì)于像我一樣的編程小白來說,還是很通俗易懂的,希望能有所幫助!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前名稱:[leetcode]No.3無重復(fù)字符的最長(zhǎng)子串-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://muchs.cn/article14/ioege.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、定制網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站維護(hù)、標(biāo)簽優(yōu)化、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容