题目:
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
思路:
可以有两种实现方法,①把它当做字符串倒序。②用数字取余的方法,比如123%10=3,把结果乘10再加上下一个余数,3*10+(12%10)=32 以此循环到结束
Java代码:
力扣解题只需要写出一个解题的类,他会自动传参测试
class Solution {
public boolean isPalindrome(int x) {
if(x<0){return false;}
StringBuffer ans=new StringBuffer();
//要用的字符串转置,String是不可变类型,所以要用StringBuffer
String str=""+ x;
ans.append(x);//StringBuffer的追加字符串方法
// ans.reverse(); StringBuffer的转置方法
// String str1=String.valueOf(ans.reverse()); 测试用
String str1=""+ans.reverse();
if(str.equals(str1)){
return true;
}
else
return false;
}
}
力扣上敲的时候不会给出提示,可以自己在idea或者eclipse中把代码的核心思想测试一下。我在敲的时候就遇到很多问题。
在idea上写的时候可以自己测试心中的疑惑,比如某个变量里存的内容,输出输入测试自己写的语句正确性
字符串是不能用==直接比较的,要用equal()函数
import java.util.Scanner;
public class stringtest {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int a=scan.nextInt() ;
StringBuffer ans=new StringBuffer();
String s= String.valueOf(a);
// String str=new StringBuffer(s).reverse().toString();
// String str=""+a;
//传进来的参数是int类型要穿换成字符串,直接用""+int 就可以实现,或者用valueOf()函数
//StringBuffer或者StringBuilder要转换成String用""+StringBuffer或者toString()
ans.append(a);
// ans.reverse();StringBuffer中转置字符串
String str="" +ans.reverse();
//字符串是不能用==直接比较的,要用equals()函数
if (s.equals(str)){
System.out.println("true");
}
else
System.out.println("false");
// System.out.println(ans);
// System.out.println(s);
}
}
python代码:
更简洁......
#方法1:
str='1234'
l1=list()
l1.append(str[::-1])
str1="".join(l1)
print(str1)
#方法2用reverse()函数
l2=list(str)
l2.reverse()
str2="".join(l2)
if(str2==str1):
print(True);
else:
print(False)