題目描述
「回文」是一個文字、段落、數字,或是其他由字元組成的序列,從頭或是從尾開始閱讀的結果都是一樣的。
給定一個字串A,如果它是一個「回文」,輸出「Yes」,否則輸出「No」。這個字串只會由小寫英文字母組成,最多擁有50個字元。
舉幾個回文的例子:madam、anna、reviver。
原題網址
範例輸入
madam
範例輸出
Yes
解題概念
同時從字串的前端和尾端開始讀取字元,直到字串的中央。如果在過程中發現前後兩端的字元不相符,則此字串不是回文。如果成功讀取到中央的位置,則此字串是回文。
參考答案
import java.util.Scanner;
public class Solution {
public static void main(final String[] args) {
final Scanner sc = new Scanner(System.in);
final String A = sc.next();
final int length = A.length();
final int halfLength = length / 2;
boolean reverse = true;
for (int i = 0; i < halfLength; ++i) {
final char a = A.charAt(i), b = A.charAt(length - 1 - i);
if (a != b) {
reverse = false;
break;
}
}
System.out.println(reverse ? "Yes" : "No");
}
}