1. 程式人生 > 其它 >java —— 迴文串字元

java —— 迴文串字元

技術標籤:java

java —— 迴文串字元

題目詳情

“xyzyx”是一個迴文字串,所謂迴文字串就是指正讀反讀均相同的字元序列,
如“席主席”、“記書記”、“aha”和“ahaha”均是迴文,但“ahah”不是迴文。
輸入一行字元(僅包含小寫英文字母a~z)請判斷這行字串是否為迴文。

輸入格式:

只有一行,僅包含小寫英文字母a~z的字串,長度小於等於100。

輸出格式:

只有一行,如果是迴文請輸出YES,不是迴文則輸出NO,請注意大小寫。

樣例1:

輸入:
ahah

輸出:
NO

樣例2:

輸入:
ahaha

輸出:
YES

程式碼如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char[] str = sc.next().toCharArray(); // 輸入一個字串並轉換為字元陣列
        if (str.length % 2 == 0){ // 判斷字元陣列的長度
            if (Judge(str, str.length / 2) == 1){
                System.out.println("YES");
            }else System.out.println("NO");
        }else{
            if (Judge(str, (str.length + 1) / 2) == 1){
                System.out.println("YES");
            }else System.out.println("NO");
        }
    }

    public static int Judge(char[] a, int n) { // 判斷是否是迴文字串
        int i = 0;
        while (i < n) {
            if (a[i] == a[a.length - i - 1])
                i++;
            else return 0;
        }
        return 1;
    }
}

程式碼二:(提供者Julpsztx)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char[] str = sc.next().toCharArray(); // 輸入一個字串並轉換為字元陣列
        System.out.println(Judge(str, str.length / 2) ? "YES" : "NO");
    }

    public static boolean Judge(char[] a, int n) { // 判斷是否是迴文字串
        int i = 0;
        while (i < n) {
            if (a[i] == a[a.length - i-1])
                i++;
            else return false;
        }
        return true;
    }
}

END