国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

c++:string相關(guān)的oj題(把字符串轉(zhuǎn)換成整數(shù)、344.反轉(zhuǎn)字符串、387. 字符串中的第一個(gè)唯一字符、917. 僅僅反轉(zhuǎn)字母)

這篇具有很好參考價(jià)值的文章主要介紹了c++:string相關(guān)的oj題(把字符串轉(zhuǎn)換成整數(shù)、344.反轉(zhuǎn)字符串、387. 字符串中的第一個(gè)唯一字符、917. 僅僅反轉(zhuǎn)字母)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.把字符串轉(zhuǎn)換成整數(shù)

傳送門

題目詳情

c++:string相關(guān)的oj題(把字符串轉(zhuǎn)換成整數(shù)、344.反轉(zhuǎn)字符串、387. 字符串中的第一個(gè)唯一字符、917. 僅僅反轉(zhuǎn)字母),c語(yǔ)言題目分享,c++,開(kāi)發(fā)語(yǔ)言,學(xué)習(xí),linux,java,c語(yǔ)言

代碼

class Solution {
public:
    int StrToInt(string str) {
        int flag=1;
        long long ret=0;
        string::iterator it=str.begin();
       // 處理空字符串的情況
        if (it == str.end()) 
        {
            return 0;
        }
      
        // 處理符號(hào)
        if (*it == '-') 
        {
            flag = -1;
            ++it;
        } else if (*it == '+') 
        {
            ++it;
        }
        
        // 遍歷字符串,將每個(gè)字符轉(zhuǎn)換為數(shù)字并累加到結(jié)果中
        while (it != str.end()) {
            if (*it >= '0' && *it <= '9') 
            {
                ret = ret * 10 + (*it - '0');
                ++it;
            } else 
            {
                return 0;
            }
        } 
        // 根據(jù)符號(hào)返回最終結(jié)果
        return flag * ret;
    }
};  

思路

  1. 首先處理空字符串為空的情況()

  2. 再處理第一個(gè)字符可能為+ -的情況,直接定一個(gè)flag初始化為1,遇到-就賦值為-1

  3. 接下來(lái)就利用迭代器進(jìn)行循環(huán),如果是字符數(shù)字就直接使用
    ret = ret * 10 + (*it - '0');
    是其他字符,直接return 0;了

2. 344.反轉(zhuǎn)字符串

傳送門

題目詳情

c++:string相關(guān)的oj題(把字符串轉(zhuǎn)換成整數(shù)、344.反轉(zhuǎn)字符串、387. 字符串中的第一個(gè)唯一字符、917. 僅僅反轉(zhuǎn)字母),c語(yǔ)言題目分享,c++,開(kāi)發(fā)語(yǔ)言,學(xué)習(xí),linux,java,c語(yǔ)言

代碼1

class Solution {
public:
    void reverseString(vector<char>& s) {
        reverse(s.begin(),s.end());
        }
    }
};

思路1

大家學(xué)習(xí)了c++,可能直接就想到了。但是我們刷題還是盡量會(huì)本質(zhì)

代碼2

class Solution {
public:
    void reverseString(vector<char>& s) {
        //reverse(s.begin(),s.end());
        int left=0;
        int right=s.size()-1;
        while(left<right)
        {
            swap(s[left],s[right]);
            left++;
            right--;
        }
    }
};

思路

還是老朋友啦:使用雙指針?lè)?,進(jìn)行交換,直到相遇

3. 387. 字符串中的第一個(gè)唯一字符

傳送門

題目詳情

c++:string相關(guān)的oj題(把字符串轉(zhuǎn)換成整數(shù)、344.反轉(zhuǎn)字符串、387. 字符串中的第一個(gè)唯一字符、917. 僅僅反轉(zhuǎn)字母),c語(yǔ)言題目分享,c++,開(kāi)發(fā)語(yǔ)言,學(xué)習(xí),linux,java,c語(yǔ)言

代碼

class Solution {
public:
    int firstUniqChar(string s) {
        int arr[26]={0};
        int index=0;
        char singal='0';
        //不會(huì)出現(xiàn)空字符
        for(auto e:s)
        {
            arr[e-'a']++;
        }
        //再次遍歷string,而不是arr
        for(int i=0;i<s.size();i++)
        {
            if(arr[s[i]-'a']==1)
            {
                return i;
            }
        }
        return -1;
    }
};

思路

利用計(jì)數(shù)排序的思想,利用一個(gè)數(shù)組

  1. 我們看到,這個(gè)字符串只會(huì)出現(xiàn)小寫字母,我們就定義一個(gè)整型數(shù)組 arr[26]:0處是a,1處是b…,25處是z
  2. 先把string給遍歷一遍,這里是使用了范圍for:哪個(gè)字母出現(xiàn)一此,就使用 arr[e-'a']++;來(lái)進(jìn)行自增,現(xiàn)在出現(xiàn)一次的字母對(duì)應(yīng)在數(shù)組里的值是1,兩次是2
  3. 有時(shí)有多個(gè)出現(xiàn)一次的字母,我們需要返回的是第一個(gè)
    所以還是從string開(kāi)始遍歷,為了返回第一個(gè)(我一開(kāi)始因?yàn)閺腶rr開(kāi)始遍歷,一直不能通過(guò))

4. 917. 僅僅反轉(zhuǎn)字母

傳送門

題目詳情

c++:string相關(guān)的oj題(把字符串轉(zhuǎn)換成整數(shù)、344.反轉(zhuǎn)字符串、387. 字符串中的第一個(gè)唯一字符、917. 僅僅反轉(zhuǎn)字母),c語(yǔ)言題目分享,c++,開(kāi)發(fā)語(yǔ)言,學(xué)習(xí),linux,java,c語(yǔ)言

代碼

class Solution {
public:
bool isLetter(char ar)
{
    if((ar>='A'&&ar<='Z')||(ar>='a'&&ar<='z'))
    {
        return true;
    }
    return false;
}
    string reverseOnlyLetters(string s) {
        //仿照快排一次的思想
        int left=0;
        int right=s.size()-1;
        while(left<right)
        {
            //右側(cè)先行
            while(left<right&&!isLetter(s[right]))//找字母才停
            {
                right--;
            }
            while(left<right&&!isLetter(s[left]))//找字母
            {
                left++;
            }
            swap(s[left],s[right]);
            right--;
            left++;
        }
        return s;
    }
};

思路

使用雙指針的方法,類似于快速排序中的一次劃分。

  1. 具體來(lái)說(shuō),維護(hù)了兩個(gè)指針(下標(biāo)) left 和 right,它們分別指向字符串的開(kāi)頭和結(jié)尾。
  2. 然后,你使用 while 循環(huán)來(lái)不斷移動(dòng)這兩個(gè)指針,并在遇到字母時(shí)進(jìn)行交換。當(dāng) left 指向的字符不是字母時(shí),left 指針向右移動(dòng);當(dāng) right 指向的字符不是字母時(shí),right 指針向左移動(dòng)。
  3. 一旦找到了兩個(gè)位置上的字母,就交換它們的位置。最終,當(dāng) left 和 right 指針相遇時(shí),整個(gè)字符串就完成了反轉(zhuǎn)

今天就到這里啦!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-816430.html

到了這里,關(guān)于c++:string相關(guān)的oj題(把字符串轉(zhuǎn)換成整數(shù)、344.反轉(zhuǎn)字符串、387. 字符串中的第一個(gè)唯一字符、917. 僅僅反轉(zhuǎn)字母)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 考研算法第46天: 字符串轉(zhuǎn)換整數(shù) 【字符串,模擬】

    考研算法第46天: 字符串轉(zhuǎn)換整數(shù) 【字符串,模擬】

    題目前置知識(shí) c++中的string判空 c++中最大最小宏 字符串使用+發(fā)運(yùn)算將字符加到字符串末尾 ?題目概況 AC代碼

    2024年02月12日
    瀏覽(25)
  • Java-json相關(guān)轉(zhuǎn)換,JSONObject與實(shí)體類/map互轉(zhuǎn)、List/List<map>和JSONArray互轉(zhuǎn)、獲取JSONObject中的key value、字符串String轉(zhuǎn)換等

    博客背景是Java開(kāi)發(fā)。json相關(guān)的轉(zhuǎn)換、取值等在日常開(kāi)發(fā)中經(jīng)常使用,但有時(shí)候還是會(huì)忘記or遇到些奇奇怪怪的問(wèn)題。以此記錄,提醒自己~不定期更新~ 實(shí)體類和JSONObject互轉(zhuǎn) Map和JSONObject互轉(zhuǎn) String轉(zhuǎn)JSONObject 實(shí)體類轉(zhuǎn)JSON字符串時(shí)不過(guò)濾NULL空值 獲取JSONObject中的key value List和

    2024年02月12日
    瀏覽(29)
  • LeetCode-字符串轉(zhuǎn)換整數(shù)atoi(8)

    LeetCode-字符串轉(zhuǎn)換整數(shù)atoi(8)

    請(qǐng)你來(lái)實(shí)現(xiàn)一個(gè) myAtoi(string s) 函數(shù),使其能將字符串轉(zhuǎn)換成一個(gè) 32 位有符號(hào)整數(shù)(類似 C/C++ 中的 atoi 函數(shù))。 函數(shù) myAtoi(string s) 的算法如下: 讀入字符串并丟棄無(wú)用的前導(dǎo)空格 檢查下一個(gè)字符(假設(shè)還未到字符末尾)為正還是負(fù)號(hào),讀取該字符(如果有)。 確定最終結(jié)果

    2024年01月16日
    瀏覽(26)
  • Leetcode 8. 字符串轉(zhuǎn)換整數(shù) (atoi)

    請(qǐng)你來(lái)實(shí)現(xiàn)一個(gè) myAtoi(string s) 函數(shù),使其能將字符串轉(zhuǎn)換成一個(gè) 32 位有符號(hào)整數(shù)(類似 C/C++ 中的 atoi 函數(shù))。 函數(shù) myAtoi(string s) 的算法如下: 讀入字符串并丟棄無(wú)用的前導(dǎo)空格 檢查下一個(gè)字符(假設(shè)還未到字符末尾)為正還是負(fù)號(hào),讀取該字符(如果有)。 確定最終結(jié)果

    2024年04月09日
    瀏覽(26)
  • 【LeetCode】字符串轉(zhuǎn)換整數(shù) (atoi) [M](模擬)

    8. 字符串轉(zhuǎn)換整數(shù) (atoi) - 力扣(LeetCode) 請(qǐng)你來(lái)實(shí)現(xiàn)一個(gè)?myAtoi(string s)?函數(shù),使其能將字符串轉(zhuǎn)換成一個(gè) 32 位有符號(hào)整數(shù)(類似 C/C++ 中的 atoi 函數(shù))。 函數(shù)?myAtoi(string s) 的算法如下: 讀入字符串并丟棄無(wú)用的前導(dǎo)空格 檢查下一個(gè)字符(假設(shè)還未到字符末尾)為正還是負(fù)

    2024年02月07日
    瀏覽(27)
  • 用C語(yǔ)言寫一個(gè)函數(shù),把字符串轉(zhuǎn)換成整數(shù)

    用C語(yǔ)言寫一個(gè)函數(shù),把字符串轉(zhuǎn)換成整數(shù)

    這是一個(gè)很有意思的問(wèn)題。請(qǐng)不要把這個(gè)問(wèn)題想的太簡(jiǎn)單了,考慮問(wèn)題時(shí)應(yīng)該盡可能的全面一些。請(qǐng)先思考并且實(shí)現(xiàn)這個(gè)函數(shù),再來(lái)看講解。 分析一下:函數(shù)名是StrToInt,那么可以這么調(diào)用: 如果你寫的程序能夠正確輸出1234,然后就覺(jué)得這道題就這樣了,那么考慮的就不夠

    2023年04月09日
    瀏覽(102)
  • String類即字符串的相關(guān)方法

    文章目錄 前言 一、字符串是什么? 二、使用方法 1.String類 2.字符串的相關(guān)方法 總結(jié) ? ? ? ? 眾所周知,現(xiàn)主流的編程語(yǔ)言都是以英文為計(jì)算機(jī)所識(shí)別,所以當(dāng)中國(guó)程序員想要?jiǎng)?chuàng)建一種,可以操縱中文的,數(shù)據(jù)類型時(shí),String字符串類型,便有了極大的幫助。 ? ? ? ? 字符串

    2024年02月08日
    瀏覽(16)
  • 【LeetCode-中等】劍指 Offer 67. 把字符串轉(zhuǎn)換成整數(shù)(詳解)

    【LeetCode-中等】劍指 Offer 67. 把字符串轉(zhuǎn)換成整數(shù)(詳解)

    寫一個(gè)函數(shù) StrToInt,實(shí)現(xiàn)把字符串轉(zhuǎn)換成整數(shù)這個(gè)功能。不能使用 atoi 或者其他類似的庫(kù)函數(shù)。 首先,該函數(shù)會(huì)根據(jù)需要丟棄無(wú)用的開(kāi)頭空格字符,直到尋找到第一個(gè)非空格的字符為止。 當(dāng)我們尋找到的第一個(gè)非空字符為正或者負(fù)號(hào)時(shí),則將該符號(hào)與之后面盡可能多的連續(xù)

    2024年02月15日
    瀏覽(25)
  • Java將集合List轉(zhuǎn)換成String字符串(或String轉(zhuǎn)換成List)

    目錄 1、將集合list轉(zhuǎn)換成string 1.1、使用String.join()方法: ?1.2、使用StringBuilder: ?1.3、使用Java 8的Stream API (推薦): 總結(jié): 2、將string轉(zhuǎn)換成list 2.1、使用String的split()方法: 2.2、?使用Java 8的Stream API的splitAsStream()方法: ?總結(jié): 將一個(gè)Java集合List轉(zhuǎn)換為String很簡(jiǎn)單,可以使用

    2024年02月02日
    瀏覽(27)
  • List轉(zhuǎn)換String字符串幾種方式

    1、傳統(tǒng)循環(huán)并拼接的方式 2、Java8 String.join()? StringUtils.join() 和 String.join()用途:將數(shù)組或集合以某拼接符拼接到一起形成新的字符串。 這里和StringUtils.join()有區(qū)別,參數(shù)順序不一樣,另外,StringUtils.join()可以傳入Integer或者其他類型的集合或數(shù)組,而String.join()盡可以傳入實(shí)

    2024年02月14日
    瀏覽(32)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包