欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實現(xiàn)無重復字符的最長子串

 更新時間:2021年07月28日 09:48:53   作者:IT-菜鳥  
本文主要介紹了C++實現(xiàn)無重復字符的最長子串,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

題目及要求:

給定一個字符串 s ,請你找出其中不含有重復字符的 最長子串 的長度。

提示:

0 <= s.length <= 5 * 104
s 由英文字母、數字、符號和空格組成

原創(chuàng)代碼:

class Solution {
public:
    int lengthOfLongestSubstring(string s) 
    {
        int begin=0;//每個當前子串的開頭
        int end=0;//每個當前子串的末尾
        int value=0;//判斷下一個字符是否屬于當前子串
        int max=0;//記錄歷史字串的最大元素個數
        int now=0;//儲存當前字串的元素個數
        string str;//代表當前字串
        if(s.size()==0)
        return 0;
        while(end<=(s.size()-1))
        {
            value=str.find(s[end],0);
            if(value!=-1)
            {
                str.erase(0,value+1);
                begin=end-(str.size()-value);
            }
            str.push_back(s[end]);
            now=str.size();
            max=now>max?now:max;
            end++;   
        }
        return max;
    }
};

 輸出示例:
示例 1:
輸入: s = “abcabcbb”
輸出: 3
解釋: 因為無重復字符的最長子串是 “abc”,所以其長度為 3。
示例 2:
輸入: s = “bbbbb”
輸出: 1
解釋: 因為無重復字符的最長子串是 “b”,所以其長度為 1。
示例 3:
輸入: s = “pwwkew”
輸出: 3
解釋: 因為無重復字符的最長子串是 “wke”,所以其長度為 3。
請注意,你的答案必須是 子串 的長度,“pwke” 是一個子序列,不是子串。
示例 4:
輸入: s = “”
輸出: 0

代碼思路:

首先:

定義變量

int begin=0;//每個當前子串的開頭
int end=0;//每個當前子串的開頭
int value=0;//判斷下一個字符是否屬于當前子串
int max=0;//記錄歷史字串的最大元素個數
int now=0;//儲存當前字串的元素個數
string str;//代表當前字串

其次:
通過以下條件判斷形參string s是否為空字符串

if(s.size()==0)
return 0;

再其次:
若形參string s不是空字符串,由于

int end=0;//每個當前子串的末尾

則用end來引入新元素,每判斷一次新元素與當前子串的關系,則end++

最后:
若新元素與當前的關系表明新元素不與當前子串內的元素重復則直接將新元素加入子串,若新元素與當前的關系表明新元素與當前子串內的元素重復則將子串含有沖突元素的前半部分刪除并將新元素加入到當前子串

反思所得:
在本次編程過程中我經常出現(xiàn)提示堆棧內存溢出的問題,之后發(fā)現(xiàn)是對形參string s是空字符串的情況沒加以控制,在未來的編程中我會更加注意。
而且我還學會了利用條件運算符來記錄記錄歷史字串的最大元素個數,即

max=now>max?now:max;

LeetCode鏈接:
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/

到此這篇關于C++實現(xiàn)無重復字符的最長子串的文章就介紹到這了,更多相關C++ 無重復字符的最長子串內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C語言?typedef的用法示例詳解

    C語言?typedef的用法示例詳解

    typedef是在C和C++編程語言中的一個關鍵字,作用是為現(xiàn)有的數據類型(int、float、char……)創(chuàng)建一個新的名字,目的是為了使代碼方便閱讀和理解,這篇文章主要介紹了C語言typedef的使用,需要的朋友可以參考下
    2023-06-06
  • 應用程序操作NorFlash示例代碼分享(norflash接口使用方法)

    應用程序操作NorFlash示例代碼分享(norflash接口使用方法)

    相對于操作NandFlash,操作NorFlash相對簡單,因為基本不需要考慮壞塊,NorFlash也沒有OOB區(qū)域,也跟ECC沒有關系。讀寫擦除相對容易,下面看個例子吧
    2013-12-12
  • Cocos2d-x保存用戶游戲數據之XML文件是否存在問題判斷方法

    Cocos2d-x保存用戶游戲數據之XML文件是否存在問題判斷方法

    這篇文章主要介紹了Cocos2d-x保存用戶游戲數據之XML文件是否存在問題判斷方法,請注意代碼中包含大量注釋,需要的朋友可以參考下
    2014-09-09
  • C++模擬如何實現(xiàn)vector

    C++模擬如何實現(xiàn)vector

    這篇文章主要介紹了C++模擬如何實現(xiàn)vector問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 數據結構之伸展樹詳解

    數據結構之伸展樹詳解

    這篇文章主要介紹了數據結構之伸展樹詳解,本文對伸展樹(Splay Tree)的單旋轉操作、一字型旋轉、之字形旋轉區(qū)間操作等理論知識做了講解,并給出實現(xiàn)代碼,需要的朋友可以參考下
    2014-08-08
  • 如何用C++實現(xiàn)雙向循環(huán)鏈表

    如何用C++實現(xiàn)雙向循環(huán)鏈表

    本篇文章是對用C++實現(xiàn)雙向循環(huán)鏈表的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言課程設計之抽獎系統(tǒng)

    C語言課程設計之抽獎系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言課程設計之抽獎系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C語言實現(xiàn)簡單學生信息管理系統(tǒng)

    C語言實現(xiàn)簡單學生信息管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單學生信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C語言中花式退出程序的方式總結

    C語言中花式退出程序的方式總結

    在本篇文章當中主要給大家介紹C語言當中一些不常用的特性,比如在main函數之前和之后設置我們想要執(zhí)行的函數,以及各種花式退出程序的方式,需要的可以參考一下
    2022-10-10
  • C語言*與&在操作線性表的作用詳解

    C語言*與&在操作線性表的作用詳解

    本文主要介紹了C語言*與&在操作線性表的作用詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10

最新評論