將整數字串轉成整數值
給定乙個字串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...