將整數字串轉成整數值

2022-05-19 07:42:56 字數 1351 閱讀 1123

題目描述:

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

舉例:str=「123」,返回123

str=「023」,因為「023」不符合日常的書寫習慣,所以返回0

str=「a13」,返回0

str=「0」,返回0

str=「2147483647」,返回2147483647

str=「2147483648」,因為溢位了,所以返回0

str=「-123」,返回123

思路:首先檢查str是否符合日常書寫的整數形式

1

public

boolean isvalid(char

chas)

5if (chas[0]=='-'&&(chas.length==1||chas[1]=='0'))

8if (chas[0]==0&&chas.length>1)

11for (int i=0; i) 15}

16return

true

;17 }

valid adj. 有效的;有根據的;合法的;正當的(寫**順便記記單詞,英語太差!!)

convert方法:

public

class

solution

if (chas[0]=='-'&&(chas.length==1||chas[1]=='0'))

if (chas[0]=='0'&&chas.length>1)

for (int i=1; i)

}return

true

; }

public

intconvert(string str)

char chas=str.tochararray();

if (!isvalid(chas))

boolean posi=chas[0]=='-'?false:true

;

int minq=integer.min_value/10;

int minr=integer.min_value%10;

int res=0;

int cur=0;

for (int i=posi?0:1; i)

res=res*10+cur;

}if (posi&&res==integer.min_value)

return posi?-res:res;

}}

測試了好多用例,應該沒錯!!

下乙個部落格是leetcode8 字串轉換整數(atoi)

將整數字串轉成整數值

給定乙個字串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...