题目描述:有这样一类数字,他们顺着看和倒着看是相同的数。
如:121,656,2332等。这样的数字称为回文数字。
编写一个函数,判断某数字是否是回文数字。
public booleanisPalidrome(String strIn)
输入:strIn:整数,以字符串表示
返回:true:是回文数字
false:不是回文数字
只需完成该函数功能算法,中间不需要任何IO的输入和输出
示例:输入:strIn="121",返回:true
分析:回味数字或者回文字母判断也是有多种方法的,这里用两种方法来解决这类问题,
其实不管是数字还是字符串, 本质的处理方法都是字符的处理,
1: 先将数字直接逆序, 再与原来的数字对比, 如果equal则返回true
2:直接二分数字, 对应数字逐个对比(这个简单简洁一些)
示例如下:
import java.util.ArrayList;
import java.util.List;
public class TestPalidrome {
public static void main(String args[]){
String strIn="1212";
TestPalidrome tp = new TestPalidrome();
System.out.println(tp.isPalidrome(strIn));
}
/*
//第一种方法:
public boolean isPalidrome(String strIn){
String tempStr = strIn;
char[] numC = tempStr.toCharArray();
List<Character> strL = new ArrayList<Character>();
for(int i=0; i<numC.length; i++){//正序分割数字
strL.add(numC[i]);
}
String temp = "";
for(int i=strL.size()-1; i>=0; i--){//逆序组合数字
temp+=strL.get(i);
}
if(tempStr.equals(temp)){
return true;
}
return false;
}
*/
//第二种方法:
public boolean isPalidrome(String strIn){
String tempStr = strIn;
char[] numC = tempStr.toCharArray();
boolean isPalidromeNum = true;
for(int i=0; i<numC.length/2; i++){
if(numC[i] != numC[numC.length-1-i]){
isPalidromeNum = false;
}
}
return isPalidromeNum;
}
}