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

java題解Leetcode 8字符串轉(zhuǎn)換整數(shù)

 更新時(shí)間:2023年06月15日 16:26:29   作者:尹學(xué)姐  
這篇文章主要為大家介紹了java題解Leetcode 8字符串轉(zhuǎn)換整數(shù)實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目要求

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

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

  • 讀入字符串并丟棄無用的前導(dǎo)空格
  • 檢查下一個(gè)字符(假設(shè)還未到字符末尾)為正還是負(fù)號(hào),讀取該字符(如果有)。 確定最終結(jié)果是負(fù)數(shù)還是正數(shù)。 如果兩者都不存在,則假定結(jié)果為正。
  • 讀入下一個(gè)字符,直到到達(dá)下一個(gè)非數(shù)字字符或到達(dá)輸入的結(jié)尾。字符串的其余部分將被忽略。
    將前面步驟讀入的這些數(shù)字轉(zhuǎn)換為整數(shù)(即,"123" -> 123, "0032" -> 32)。如果沒有讀入數(shù)字,則整數(shù)為 0 。必要時(shí)更改符號(hào)(從步驟 2 開始)。
  • 如果整數(shù)數(shù)超過 32 位有符號(hào)整數(shù)范圍 [−2^31, 2^31 − 1] ,需要截?cái)噙@個(gè)整數(shù),使其保持在這個(gè)范圍內(nèi)。具體來說,小于 −2^31 的整數(shù)應(yīng)該被固定為 −2^31 ,大于 2^31 − 1 的整數(shù)應(yīng)該被固定為 2^31 − 1 。
  • 返回整數(shù)作為最終結(jié)果。

注意:

  • 本題中的空白字符只包括空格字符 ' ' 。
  • 除前導(dǎo)空格或數(shù)字后的其余字符串外,請(qǐng)勿忽略 任何其他字符。

示例 1:

輸入:s = "42"
輸出:42

示例 2:

輸入:s = " -42"
輸出:-42

示例 3:

輸入:s = "4193 with words"
輸出:4193

提示:

  • 0 <= s.length <= 200
  • s 由英文字母(大寫和小寫)、數(shù)字(0-9)、' '、'+'、'-' 和 '.' 組成

解題思路

這道題用簡單的模擬法來解。

主要步驟如下:

  • 借助trim方法,去除s前后的空格
  • 判斷s的第一位元素,是否為+和-,從而得到結(jié)果是正數(shù)還是負(fù)數(shù)
  • 循環(huán)遍歷s中的所有數(shù)字
    • 先判斷加上當(dāng)前數(shù)字是否會(huì)越界,如果會(huì)越界,則直接返回Integer.MAX_VALUE或Integer.MIN_VALUE
    • 計(jì)算res值
    • index++
  • 返回正負(fù)號(hào)標(biāo)記位 * res

Java代碼

class Solution {
    public int myAtoi(String s) {
        s = s.trim();
        int index = 0, flag = 1, res = 0;
        if (index < s.length() && (s.charAt(index) == '+' || s.charAt(index) == '-')) {
            flag = s.charAt(index++) == '+' ? 1 : -1;
        }
        while(index < s.length() && Character.isDigit(s.charAt(index))){
            int digit = s.charAt(index) - '0';
            if(res > (Integer.MAX_VALUE - digit) / 10){
                return flag == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
            }
            res = res * 10 + digit;
            ++index;
        }
        return flag * res;
    }
}

總結(jié)

這道題就用模擬法的方式來解,就好了,核心是如何判斷越界。不能在計(jì)算完res值之后再判斷越界,要在計(jì)算res值之前判斷是否越界。

以上就是java題解Leetcode 8字符串轉(zhuǎn)換整數(shù)的詳細(xì)內(nèi)容,更多關(guān)于java題解字符串轉(zhuǎn)換整數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java用數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列的示例

    Java用數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列的示例

    下面小編就為大家?guī)硪黄狫ava用數(shù)組實(shí)現(xiàn)循環(huán)隊(duì)列的示例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Eclipse git推送上傳錯(cuò)誤問題解決方案

    Eclipse git推送上傳錯(cuò)誤問題解決方案

    這篇文章主要介紹了Eclipse git推送上傳錯(cuò)誤問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • SpringCloud之Ribbon使用示例解析

    SpringCloud之Ribbon使用示例解析

    這篇文章主要為大家介紹了SpringCloud之Ribbon使用示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Java ForkJoin框架的原理及用法

    Java ForkJoin框架的原理及用法

    這篇文章主要介紹了Java ForkJoin框架的原理及用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java騷操作之CountDownLatch代碼詳解

    Java騷操作之CountDownLatch代碼詳解

    這篇文章主要介紹了Java騷操作之CountDownLatch代碼詳解,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • 學(xué)習(xí)Java之IO流中有哪些復(fù)雜的API

    學(xué)習(xí)Java之IO流中有哪些復(fù)雜的API

    這篇文章我們要先對(duì)IO流的API有個(gè)基本的認(rèn)知,因?yàn)镮O流的類和方法太多了,我們不得不專門學(xué)習(xí)一下,所以本文就給大家詳細(xì)的講講Java?IO流中復(fù)雜的API,需要的朋友可以參考下
    2023-09-09
  • Java Fluent Mybatis實(shí)戰(zhàn)之構(gòu)建項(xiàng)目與代碼生成篇上

    Java Fluent Mybatis實(shí)戰(zhàn)之構(gòu)建項(xiàng)目與代碼生成篇上

    Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內(nèi)又以Mybatis用的多,基于mybatis上的增強(qiáng)框架,又有mybatis plus和TK mybatis等。今天我們介紹一個(gè)新的mybatis增強(qiáng)框架 fluent mybatis
    2021-10-10
  • Spring Boot 接口參數(shù)加密解密的實(shí)現(xiàn)方法

    Spring Boot 接口參數(shù)加密解密的實(shí)現(xiàn)方法

    這篇文章主要介紹了Spring Boot 接口參數(shù)加密解密的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • SpringBoot中使用Redis作為全局鎖示例過程

    SpringBoot中使用Redis作為全局鎖示例過程

    這篇文章主要為大家介紹了SpringBoot中使用Redis作為全局鎖示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析

    Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析

    這篇文章主要介紹了Maven多個(gè)項(xiàng)目實(shí)現(xiàn)聚合過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論