1. 題目描述
判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
示例 1:
輸入: 121
輸出: true
示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 爲 -121 。 從右向左讀, 爲 121- 。因此它不是一個迴文數。
示例 3:
輸入: 10
輸出: false
解釋: 從右向左讀, 爲 01 。因此它不是一個迴文數。
2. 題目分析
- 經典的迴文題目,判斷左右是否相等,相等的話返回true,否則返回false
- 第一種方法:轉爲字符串(運用java的String.valueOf(x))進行比較;第二種方法:直接運用整數進行比較,將整數num的每一位分離出來,進行判斷是否爲迴文
3. 題目代碼
- 轉爲字符串
public static boolean isPalindrome(int x) {
String string = String.valueOf(x);
int i = 0;
int j = string.length() - 1;
boolean f = true;
while (i < j && f == true) {
if (string.charAt(i) != string.charAt(j)) {
f = false;
} else {
i++;
j--;
}
}
return f;
}
- 整數分離判斷(不建議)
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
ArrayList<Integer> list = new ArrayList<>();
while (n != 0) {
list.add(n % 10);
n = n / 10;
}
System.out.println(huiwen(list));
}
public static boolean huiwen(ArrayList<Integer> list) {
boolean f = true;
int i = 0;
int j = list.size() - 1;
while (i < j) {
if (list.get(i) == list.get(j)) {
i++;
j--;
}else {
f = false;
break;
}
}
return f;
}
}