一,回文判定
1.題目描述:
題目描述
給定一個長度為?nn?的字符串?SS。請你判斷字符串?SS?是否回文。
輸入描述
輸入僅?11?行包含一個字符串?SS。
1≤∣S∣≤1061≤∣S∣≤106,保證?SS?只包含大小寫、字母。
輸出描述
若字符串?SS?為回文串,則輸出?YY,否則輸出?NN。
2.實例:
示例 1
輸入
abcba
輸出
Y
示例 2
輸入
abcbb
輸出
N
3.思路:
-
輸入讀取:使用BufferedReader讀取輸入字符串,確保處理大輸入時的效率。
-
雙指針初始化:指針i從字符串開頭開始,指針j從字符串末尾開始。
-
循環比較:當i小于j時,比較兩個指針位置的字符。如果不相同,立即標記為非回文并終止循環。
-
結果輸出:根據比較結果輸出"Y"(是回文)或"N"(不是回文)。
4:代碼:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String s = br.readLine();int i = 0;int j = s.length() - 1;boolean isPalindrome = true;while (i < j) {if (s.charAt(i) != s.charAt(j)) {isPalindrome = false;break;}i++;j--;}System.out.println(isPalindrome ? "Y" : "N");}
}