题目: 回文数
来自智得网
分析
字符串法
该问题使用字符串的方式可以将字符串反转,然后逐位比较,如果比较到结尾每个字符都相等,则该数字是回文数。
数字法
把数字的高位低位反转,然后比较两个字符是否相等。
高位低位反转的过程:
将数字作为第一轮的输入除以10,商为q,余数位r。本轮结果是r。上一轮的输入是q。
重复第一轮的过程,直到q=0,本轮的结果是上一轮结果乘以10加上本轮的余数r。
判断两个数字是否相等。
题解
字符串法
class Solution {
public boolean solute(int x) {
String s = String.valueOf(x);
System.out.println(s);
int i = 0;
int j = s.length()-1;
while(i < j){
if(s.charAt(i) == s.charAt(j)){
i++;
j--;
}else{
return false;
}
}
return true;
}
}
数字法
class Solution {
public boolean solute(int x) {
int y = 0;
if(x < 0 || (x % 10 == 0 && x != 0)){
return false;
}
while(x > y){
y = y * 10 + x % 10;
x /= 10;
}
return x == y || x == y / 10;
}
}