题目:
思路:
1.将整数从个位依次循环拿出在依次循环进位
2.返回结果进行判断是否在帧数范围内
class Solution {
public int reverse(int x) {
long result = 0;
if(x==0)
return 0;
while(x != 0){
result = result * 10;
result += x % 10;
x /= 10;
}
return (long)((int)result) == result ? (int)result : 0;
}
}
题目:
思路:
1.先将字符串中的空格去掉
2.将符号位转换为1跟-1代表正与负,然后与结果相乘,得出最后结果
3.然后将字符串中的数字以循环得出
4.因为我们返回的值为ASCII值,所以一个数的ASCII码-0的所对应的ASCII也是其对应的整数值
class Solution {
public int myAtoi(String s) {
int result=0;
int symbol=1;
int i=0;
while(i<s.length()&&s.charAt(i)==' '){
i++;
}
if(i==s.length()){
return 0;
}
if(s.charAt(i)=='-'){
symbol=-1;
i++;
}else if(s.charAt(i)=='+'){
i++;
}
while(i<s.length()&&s.charAt(i)>='0'&&s.charAt(i)<='9'){
int x = s.charAt(i) - '0';
if (flag > 0 && result > (Integer.MAX_VALUE - x) / 10) {
return Integer.MAX_VALUE;
}
if (flag < 0 && -result < (Integer.MIN_VALUE + x) / 10) {
return Integer.MIN_VALUE;
}
if (-result * 10 - x == Integer.MIN_VALUE)
return Integer.MIN_VALUE;
result = result * 10 + x;
i++;
}
result *= symbol;
return result;
}
}