1. 程式人生 > >把字串轉化為整數

把字串轉化為整數

題目描述

  將一個字串轉換成一個整數(實現Integer.valueOf(string)的功能,但是string不符合數字要求時返回0),要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0。

輸入描述:

  輸入一個字串,包括數字字母符號,可以為空

輸出描述:

  如果是合法的數值表達則返回該數字,否則返回0

例子:

  +2147483647         ->  2147483647    
  1a33             ->   0

 

提交連結:點選

 

思路:

  依次遍歷字串即可! 字元+ 、-只能出現在首位。

  遍歷一位數字進行str[i]-‘0‘+temp*10,累加即得到整數

 

程式碼:

class Solution {
public:
    int StrToInt(string str) {
        int size=str.size();
        int result=0;
        if(!size) return 0;   //空串
        for(int i=(str[0]=='-' || str[0]=='
+')? 1 : 0;i<size;i++){ if(str[i]<'0' || str[i]>'9') return 0; //中間有字母,直接返回0 result=result*10+str[i]-'0'; } return str[0]=='-'? -result : result; //為負數的話加入負號 } };