2025-3-29算法打卡

一,回文判定

1.题目描述:

题目描述

给定一个长度为 nn 的字符串 SS。请你判断字符串 SS 是否回文。

输入描述

输入仅 11 行包含一个字符串 SS。

1≤∣S∣≤1061≤∣S∣≤106,保证 SS 只包含大小写、字母。

输出描述

若字符串 SS 为回文串,则输出 YY,否则输出 NN。

2.实例:

示例 1

输入

abcba

输出

Y

示例 2

输入

abcbb

输出

N

3.思路:

  1. 输入读取:使用BufferedReader读取输入字符串,确保处理大输入时的效率。

  2. 双指针初始化:指针i从字符串开头开始,指针j从字符串末尾开始。

  3. 循环比较:当i小于j时,比较两个指针位置的字符。如果不相同,立即标记为非回文并终止循环。

  4. 结果输出:根据比较结果输出"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");
    }
}

你可能感兴趣的:(算法,leetcode,数据结构)