[leetcode]No.3無重復(fù)字符的最長(zhǎng)子串-創(chuàng)新互聯(lián)

題目

給定一個(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)

綿陽服務(wù)器托管