一,回文判定
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");}
}