【LeetCode-六月每日一題-】-迴文數

1. 題目描述

判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。

示例 1:
輸入: 121
輸出: true

示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 爲 -121 。 從右向左讀, 爲 121- 。因此它不是一個迴文數。

示例 3:
輸入: 10
輸出: false
解釋: 從右向左讀, 爲 01 。因此它不是一個迴文數。

2. 題目分析

  1. 經典的迴文題目,判斷左右是否相等,相等的話返回true,否則返回false
  2. 第一種方法:轉爲字符串(運用java的String.valueOf(x))進行比較;第二種方法:直接運用整數進行比較,將整數num的每一位分離出來,進行判斷是否爲迴文

3. 題目代碼

  1. 轉爲字符串
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;
	}
  1. 整數分離判斷(不建議)
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;
	}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章