將整數字串轉成整數值

2021-10-09 17:30:19 字數 1475 閱讀 6943

將整數字串轉成整數值

給定乙個字串str,如果str符合日常書寫的整數形式,並且屬於32位整數範圍,返回str代表的整數值,否則返回0。

輸入描述:

輸出包括一行代表str(1≤

leng

th(s

tr)≤

100)

(1 \leq length(str) \leq 100)

(1≤len

gth(

str)

≤100

)。輸出描述:

輸出一行,代表返回的值。

示例1輸入

123
輸出
123
示例2

輸入

023
輸出
0
示例3

輸入

a13
輸出
0
示例4

輸入

2147483647
輸出
2147483647
示例5

輸入

2147483648
輸出
0
示例6

輸入

-127
輸出
-127
備註:

時間複雜度o(l

engt

h(st

r)

)o(length(str))

o(leng

th(s

tr))

,空間複雜度o(l

engt

h(st

r)

)o(length(str))

o(leng

th(s

tr))

。題解:

就是各種討論,下面的一般情況比較容易想到:

剩下的就是判斷數字是否越界了,我們可以只考慮數字的絕對值,以 max=214748364 為分界線:

最後處理一下負號即可。

**

#include

#include

using

namespace std;

const

int n =

110;

const

int max =

214748364

;char s[n]

;int len;

bool

is_valid()

intmain

(void

) ret = ret *

10+ t;}if

(flag) ret *=-

1;printf

("%d\n"

, ret)

;return0;

}

將整數字串轉成整數值

給定乙個字串s,如果字串符合日常書寫的整數形式,並且屬於32位整數的範圍,返回str所代表的整數值,否則返回0.比如 s 123 則返回123.s 0123 則返回0.s 123 則返回 123.s 0 返回0.s 返回0.s 123a4 返回0.首先,需要判斷字串中是否有非法字元,具體 如下 pu...

將整數字串轉成整數值

題目 給定乙個字串str,如果str符合日常書寫的整數形式,並且屬於32位整數的範圍,返回所代表的整數值,否則返回0。eg str 123 返回123.str 023 因為 023 不符合日常的書寫習慣,所以返回0.str a23 返回0 str 0 返回0 str 2147483647 返回214...

將整數字串轉成整數值

題目 給定乙個字串str,如果str符合日常書寫的整數形式,並且屬於32位整數的範圍,返回所代表的整數值,否則返回0。eg str 123 返回123.str 023 因為 023 不符合日常的書寫習慣,所以返回0.str a23 返回0 str 0 返回0 str 2147483647 返回214...