8、String to Integer (atoi)
题目
这道题目关键是要考虑清楚各种输入用例。针对每一种情况,函数都能处理,也就是函数鲁棒性很高。代码如下:
1 class Solution { 2 public: 3 int myAtoi(string str) { 4 int index=0; 5 int flag = 1; 6 long long res=0; 7 if(str.length()==0)return 0; 8 while (str[index]==‘ ‘)//去除空白 9 index++; 10 11 if(str[index] == ‘-‘)//负数 12 { 13 flag = -1; 14 index++; 15 } 16 else if(str[index] == ‘+‘)//负数 17 { 18 flag = 1; 19 index++; 20 } 21 int len = str.length(); 22 while (str[index]>=‘0‘&&str[index]<=‘9‘) 23 { 24 res = res * 10 +str[index]-‘0‘; 25 if(res > INT_MAX) 26 return flag>0 ? INT_MAX:INT_MIN; 27 index++; 28 } 29 30 return res*flag; 31 } 32 };
----------------------------------------------------------------------------------------------分割线------------------------------------------------------------------------------------
9、Palindrome Number
题目
话不多说,直接看代码:
1 class Solution { 2 public: 3 bool isPalindrome(int x) { 4 if (x == -2147483648) 5 { 6 return false; 7 } 8 if (x<0) 9 { 10 //x=0-x; 11 return false; 12 } 13 int length = (int)log10(x*1.0)+1;//判断x的位数 14 //int s[20]; 15 int temp1 = x; 16 int temp2 = x; 17 int middle = length/2; 18 int i,j,left,right,power=length-1; 19 for (i=1;i<=middle;i++) 20 { 21 left=temp1/(int)pow(10.0,power); 22 temp1=temp1%(int)pow(10.0,power); 23 power--; 24 25 right = temp2%10; 26 temp2 = temp2/10; 27 if (left != right) 28 { 29 return false; 30 } 31 32 } 33 return true; 34 } 35 };
原文:http://www.cnblogs.com/LCCRNblog/p/5008353.html