小红有一个字符串,她可以进行以下操作: 拆分。 把 w拆成2个v,m拆成2个'n'. 轴对称。 把b'轴对称成 d' ,p'轴对称成q',反
可以使用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`。
注意:这段代码只考虑了字母的情况,如果字符串中包含其他字符,需要根据具体情况进行相应的处理。
```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`。
注意:这段代码只考虑了字母的情况,如果字符串中包含其他字符,需要根据具体情况进行相应的处理。