日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

将字符串添加负数_Go语言实现LeetCode算法:8 字符串转整数

發布時間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将字符串添加负数_Go语言实现LeetCode算法:8 字符串转整数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Go語言中文網,致力于每日分享編碼、開源等知識,歡迎關注我,會有意想不到的收獲!

看到題目,是不是超級簡單,用 strconv.Atoi 就可以了?題目當然不是這么簡單的要求。

1 題目描述

實現atoi函數,以將字符串轉換為一個整數。

該函數首先丟棄盡可能多的空格字符,直至找到第一個非空格字符。然后由該字符開始(可能會有正負標志)找出盡可能多的數字字符,最后將其轉換為一個整數。

在連續數值字符后可能還會有其他字符,請將這些字符略過,并不影響函數行為。

若字符串第一個非空格字符已非數字字符,或該字符串為空,甚至該字符串為純空格字符串,其為無效字符串,返回0即可。

注意:

a)僅認為' '為空格字符;

b)假定運行環境存儲整數范圍屬于[?231, 231?1],即32位有符號整數范圍。若數值超過該表示范圍限制,返回INT_MAX(2^31?1)或INT_MIN(?2^31)。

例子1:

輸入:"42"

輸出:42

例子2:

輸入:" -42"

輸出:-42

釋義:第一個非空字符是'-',然后取盡可能最多的數位,得到整數42。

例子3:

輸入:"4193 with words"

輸出:4193

釋義:取到3時停止,因后面的字符非數字。

例子4:

輸入:"words and 987"

輸出:0

釋義:第一個非空字符為'w',不是數字也不是+/-符號,因此無需進行后續字符判斷,直接返回0。

例子5:

輸入:"-91283472332"

輸出:-2147483648

釋義:"-91283472332"超過了32位有符號整數表示范圍,因此返回INT_MIN(?2^31)。

題目出處:

https://leetcode.com/problems/string-to-integer-atoi/

2 解決思路

首先trim掉頭部空格字符,找到第一個非空格字符:

若為'+',自下一個字符遍歷該字符串,疊加所有連續數字字符,直至找到最大的正整數(若擴展過程變為負數,說明越界,返回32位最大正整數);

若為'-',將negtive設為true,自下一個字符遍歷該字符串,疊加所有連續數字字符,直至找到最大的負整數(若擴展過程發現小于最小負整數,說明越界,返回32位最大負整數);

若為數字字符,自當前字符遍歷該字符串,疊加所有連續數字字符,直至找到最大的正整數(若擴展過程變為負數,說明越界,返回32位最大正整數)。

3 golang實現代碼

https://github.com/olzhy/leetcode/blob/master/8_String_To_Integer/test.go

原文鏈接:https://leileiluoluo.com/posts/leetcode-string-to-integer.html

本文作者:磊磊落落的博客,原創授權發布

總結

以上是生活随笔為你收集整理的将字符串添加负数_Go语言实现LeetCode算法:8 字符串转整数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。