劍指 Offer 67 把字串轉換成整數

2021-10-08 18:59:36 字數 743 閱讀 4644

方法

演算法思想:按題目要求分情況討論,res×10 是為了表示每次進製,拼湊數字,每輪數字拼接前,判斷 resres在此輪拼接後是否超過 2147483647

時間複雜度:o(n)

空間複雜度:o(n)

邊界條件:最大整數

補充知識:

class solution {

public int strtoint(string str) {

charc=str.trim().tochararray();   //方法呼叫

if(c.length==0) return 0;

int res=0,i=1,sign=1,b=integer.max_value / 10;   //邊界是在拼接前

if(c[0]=='-') sign=-1;

else if(c[0]!='+') i=0;        //i的轉換

for(int j=i;jif(c[j]<'0'||c[j]>'9' ) break;  //break

if(res>b||res==b&&c[j]>'7') return sign==1?integer.max_value:integer.min_value;   

//大小寫,左右×10 大於7是看末尾的8,9

res=res*10+(c[j]-'0');

return sign * res;  //加上符號位

劍指offer67 把字串轉換成整數

將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 輸入乙個字串,包括數字字母符號,可以為空 如果是合法的數值表達則返回該數字,否則返回0 2147483647 1a332147483647 0 注意邊界條件 coding utf 8 class ...

劍指offer 67 把字串轉換成整數

請你寫乙個函式strtoint,實現把字串轉換成整數這個功能。忽略所有行首空格,找到第乙個非空格字元,可以是 表示是正數或者負數,緊隨其後找到最長的一串連續數字,將其解析成乙個整數 整數後可能有任意非數字字元,請將其忽略 如果整數長度為0,則返回0 如果整數大於int max 2 31 1 請返回i...

劍指 Offer 67 把字串轉換成整數

題目 寫乙個函式 strtoint,實現把字串轉換成整數這個功能。不能使用 atoi 或者其他類似的庫函式。1 首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。2 當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正...