判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
解题思路:1.从量变向中间比较,发现不一样返回FALSE;
2.动态规划 (本题不推荐)
code1
public boolean isPalindrome(int x) {
boolean res = true;
if (x<0){
return false;
}else{
String str = ""+x;
int i =0 ;
int j=str.length()-1;
while (i<j){
if (str.charAt(i)==str.charAt(j)){
i++;
j--;
}else {
return false;
}
}
}
return res;
}
code2
public boolean isPalindrome(int x) {
boolean res = false;
if (x<0){
return false;
}else{
String str = ""+x;
int length = str.length();
boolean dp[][] = new boolean[length][length];
for (int i =length-1 ; i>=0;i--){
for (int j =i ; j<length;j++){
dp[i][j]= str.charAt(i)==str.charAt(j)&&(j-i<3||dp[i+1][j-1]);
}
}
res =dp[0][length-1];
}
return res;
}