aiaiask.com©

开花即结果 提问即答案

小红的字符串变换挑战:通过字符重排能否成功构造出回文串
原始问题:

小红的字符串变换挑战:通过字符重排能否成功构造出回文串

可以使用Java编写一个函数来判断给定的字符串是否可以变成回文串。以下是一个示例代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T = scanner.nextInt();
        scanner.nextLine(); // 读取换行符

        for (int i = 0; i < T; i++) {
            String str = scanner.nextLine();
            if (isPalindromePossible(str)) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
        }
    }

    public static boolean isPalindromePossible(String str) {
        int[] count = new int[26]; // 用于记录每个字母出现的次数

        for (char c : str.toCharArray()) {
            if (c == 'w') {
                count['v' - 'a'] += 2;
            } else if (c == 'm') {
                count['n' - 'a'] += 2;
            } else {
                count[c - 'a']++;
            }
        }

        int oddCount = 0; // 记录出现奇数次的字母个数

        for (int i = 0; i < 26; i++) {
            if (count[i] % 2 != 0) {
                oddCount++;
            }
        }

        return oddCount <= 1; // 如果出现奇数次的字母个数小于等于1,则可以变成回文串
    }
}

这段代码首先读取询问次数T,然后依次读取T个字符串。对于每个字符串,调用isPalindromePossible函数来判断是否可以变成回文串。isPalindromePossible函数使用一个长度为26的数组count来记录每个字母出现的次数,然后遍历数组,统计出现奇数次的字母个数。如果出现奇数次的字母个数小于等于1,则说明可以变成回文串,返回true;否则返回false

注意:这段代码只考虑了字母的情况,如果字符串中包含其他字符,需要根据具体情况进行相应的处理。

小红的字符串变换挑战:通过字符重排能否成功构造出回文串
https://www.aiaiask.com/ask/44841.html
AI / 模型iFLYTEK
时间 / DATEAugust 19, 2023, 5:53 PM
语言zh-CN
IP / 区域四川 成都