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

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

這篇具有很好參考價值的文章主要介紹了LeetCode-字符串轉(zhuǎn)換整數(shù)atoi(8)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

題目描述:

請你來實現(xiàn)一個 myAtoi(string s) 函數(shù),使其能將字符串轉(zhuǎn)換成一個 32 位有符號整數(shù)(類似 C/C++ 中的 atoi 函數(shù))。

函數(shù) myAtoi(string s) 的算法如下:

讀入字符串并丟棄無用的前導(dǎo)空格
檢查下一個字符(假設(shè)還未到字符末尾)為正還是負(fù)號,讀取該字符(如果有)。 確定最終結(jié)果是負(fù)數(shù)還是正數(shù)。 如果兩者都不存在,則假定結(jié)果為正。
讀入下一個字符,直到到達(dá)下一個非數(shù)字字符或到達(dá)輸入的結(jié)尾。字符串的其余部分將被忽略。
將前面步驟讀入的這些數(shù)字轉(zhuǎn)換為整數(shù)(即,“123” -> 123, “0032” -> 32)。如果沒有讀入數(shù)字,則整數(shù)為 0 。必要時更改符號(從步驟 2 開始)。
如果整數(shù)數(shù)超過 32 位有符號整數(shù)范圍 [?231, 231 ? 1] ,需要截斷這個整數(shù),使其保持在這個范圍內(nèi)。具體來說,小于 ?231 的整數(shù)應(yīng)該被固定為 ?231 ,大于 231 ? 1 的整數(shù)應(yīng)該被固定為 231 ? 1 。
返回整數(shù)作為最終結(jié)果。
LeetCode-字符串轉(zhuǎn)換整數(shù)atoi(8),leetcode,算法
思路: 首先對字符串刪除首尾的空字符,之后判斷長度是否為0,如果是直接返回長度0;不是則繼續(xù)進(jìn)行操作。然后設(shè)置一個變量,如果第一個字符是正號則設(shè)為1,為負(fù)號則設(shè)為-1。之后就是對字符串進(jìn)行遍歷,如果有數(shù)字就進(jìn)行操作,這一步看代碼即可,但是這里要注意如果超出32位數(shù)字的范圍則直接返回最大值和最小值,這里的處理方式與力扣第七題的處理方式如出一轍就不贅述。最終遍歷完成后得到轉(zhuǎn)換出的整數(shù)值返回乘上一個flg即可。具體看代碼。

代碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-792310.html

class Solution {
    public int myAtoi(String s) {
        
        s=s.strip();
        if(s.length()==0) {
            return 0;
        }
        int flg=1;
        int i=0;
        if(s.charAt(i)=='-') {
            flg=-1;
            i++;
        } else if(s.charAt(i)=='+') {
            i++;
        }

        int sum=0;
        for(;i<s.length();i++) {
            
            if(Character.isDigit(s.charAt(i))) {
                int digit=s.charAt(i)-'0';
                if((sum>Integer.MAX_VALUE/10 || (sum==Integer.MAX_VALUE/10&&digit>7))&&flg==1) {
                    return Integer.MAX_VALUE;
                } else if((-sum<(Integer.MIN_VALUE/10) || (-sum==(Integer.MIN_VALUE/10)&&digit>8))&&flg==-1) {
                    return Integer.MIN_VALUE;     
                } else {
                    sum=digit+sum*10;
                }
                
            } else {
                break;
            }
        }
        
        
        return flg*sum;
    }
}

到了這里,關(guān)于LeetCode-字符串轉(zhuǎn)換整數(shù)atoi(8)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • (其他) 劍指 Offer 67. 把字符串轉(zhuǎn)換成整數(shù) ——【Leetcode每日一題】

    (其他) 劍指 Offer 67. 把字符串轉(zhuǎn)換成整數(shù) ——【Leetcode每日一題】

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

    2024年02月09日
    瀏覽(27)
  • 【我愛C語言】詳解字符函數(shù)isdigit和字符串轉(zhuǎn)換函數(shù)(atoi和snprintf實現(xiàn)互相轉(zhuǎn)換字符串)&&三種strlen模擬實現(xiàn)

    【我愛C語言】詳解字符函數(shù)isdigit和字符串轉(zhuǎn)換函數(shù)(atoi和snprintf實現(xiàn)互相轉(zhuǎn)換字符串)&&三種strlen模擬實現(xiàn)

    ??個人主頁 : @啊森要自信的主頁 ?? 真正相信奇跡的家伙,本身和奇跡一樣了不起?。?歡迎大家關(guān)注??點(diǎn)贊??收藏??留言??希望看完我的文章對你有小小的幫助,如有錯誤,可以指出,讓我們一起探討學(xué)習(xí)交流,一起加油鴨。 本小節(jié)我們將學(xué)習(xí)字符分類函數(shù),字符

    2024年02月04日
    瀏覽(33)
  • 動態(tài)規(guī)劃 多源路徑 字典樹 LeetCode2977:轉(zhuǎn)換字符串的最小成本

    動態(tài)規(guī)劃 多源路徑 字典樹 LeetCode2977:轉(zhuǎn)換字符串的最小成本

    動態(tài)規(guī)劃匯總 多源最短路徑 字典樹 視頻算法專題 給你兩個下標(biāo)從 0 開始的字符串 source 和 target ,它們的長度均為 n 并且由 小寫 英文字母組成。 另給你兩個下標(biāo)從 0 開始的字符串?dāng)?shù)組 original 和 changed ,以及一個整數(shù)數(shù)組 cost ,其中 cost[i] 代表將字符串 original[i] 更改為字符

    2024年02月04日
    瀏覽(25)
  • 考研算法第46天: 字符串轉(zhuǎn)換整數(shù) 【字符串,模擬】

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

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

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

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

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

    2023年04月09日
    瀏覽(103)
  • C++中如何將string(字符串)轉(zhuǎn)換為int(整數(shù))

    C++ 編程語言有一些內(nèi)置數(shù)據(jù)類型: int , 對于整數(shù)(例如 10、150) double ,對于浮點(diǎn)數(shù)(例如 5.0、4.5) char ,對于單個字符(例如“D”、“!”) string ,對于字符序列(例如“Hello”) bool , 對于布爾值(true 或 false) C++ 是一種 強(qiáng)類型 編程語言,這意味著當(dāng)您創(chuàng)建變量時,你

    2024年02月06日
    瀏覽(89)
  • c++:string相關(guān)的oj題(把字符串轉(zhuǎn)換成整數(shù)、344.反轉(zhuǎn)字符串、387. 字符串中的第一個唯一字符、917. 僅僅反轉(zhuǎn)字母)

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

    傳送門 首先處理空字符串為空的情況() 再處理第一個字符可能為 + - 的情況,直接定一個 flag 初始化為1,遇到 - 就賦值為-1 接下來就利用迭代器進(jìn)行循環(huán),如果是字符數(shù)字就直接使用 ret = ret * 10 + (*it - \\\'0\\\'); 是其他字符,直接return 0;了 傳送門 大家學(xué)習(xí)了c++,可能直接就想

    2024年01月23日
    瀏覽(33)
  • ( 字符串) 205. 同構(gòu)字符串 ——【Leetcode每日一題】

    ( 字符串) 205. 同構(gòu)字符串 ——【Leetcode每日一題】

    難度:簡單 給定兩個字符串 s 和 t ,判斷它們是否是同構(gòu)的。 如果 s 中的字符可以按某種映射關(guān)系替換得到 t ,那么這兩個字符串是同構(gòu)的。 每個出現(xiàn)的字符都應(yīng)當(dāng)映射到另一個字符,同時不改變字符的順序。不同字符不能映射到同一個字符上,相同字符只能映射到同一個

    2024年02月02日
    瀏覽(65)
  • 【LeetCode】《LeetCode 101》第十二章:字符串

    【LeetCode】《LeetCode 101》第十二章:字符串

    思路及代碼: 242 . 有效的字母異位詞 思路及代碼: 205. 同構(gòu)字符串 思路及代碼: 647. 回文子串 思路及代碼: 696 . 計數(shù)二進(jìn)制子串 思路及代碼 : 224. 基本計算器 思路及代碼: 227. 基本計算器 II 思路與代碼: 28 . 找出字符串中第一個匹配項的下標(biāo) 思路及代碼 :409. 最長回文

    2024年02月10日
    瀏覽(28)
  • LeetCode_字符串_簡單_415.字符串相加

    給定兩個字符串形式的非負(fù)整數(shù) num1 和num2,計算它們的和并同樣以字符串形式返回。 你不能使用任何內(nèi)建的用于處理大整數(shù)的庫(比如 BigInteger), 也不能直接將輸入的字符串轉(zhuǎn)換為整數(shù)形式。 示例 1: 輸入:num1 = “11”, num2 = “123” 輸出:“134” 示例 2: 輸入:num1 = “

    2024年02月01日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包