首页 > AI文库 >

小红有一个字符串,她可以进行以下操作: 拆分。 把 w拆成2个v,m拆成2个'n'. 轴对称。 把b'轴对称成 d' ,p'轴对称成q',反

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

```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`。

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

相关推荐

中国经济实现高质量发展具备哪些显著优势论文1500字

AI文库

世界变乱交织,中国笃行担当 变革动荡 大国关系 中国智慧 上述内容分别为大标题和三个小标题,请以此写出不少于2000字的形式与政策论文,要求内容充实具体,不存在抄袭、、雷同情况

AI文库

假如你是形式与政策这个课程的一名学生,请以“世界变乱多织,中国笃行担当”为主题,写一篇论文,要求完全按照论文的格式,字数一定在2500字以上!

AI文库

请结合《走好新时代科技自立自强之路》专题和今年2月8日广东省高质量发展大会聚焦产业科技话创新、谋未来主题,谈谈你对党的二十大提出的“科技强国”战略的认识及行动

AI文库

国家安全为什么与你我息息相关论文不少于1500

AI文库

热门图文

上一篇:小美定义一个01串的权值为:每次操作选择一位取反,使得相邻字符都不相等的最小操作次数。 例如,"10001"的权值是1,因为只需要修改一次:对第三个字符取反即可。 现在小美拿到了一

下一篇:小红是小红书的一个博主,她有很多的粉丝,有一些粉丝想让小红出一 筒上尾市的旅游攻略。 上尾市有n个景点,有m条路线,每个景点的攻略价值是a,要花费h时间浏览,不同景点之间的交通时间为w。小红最多会选择