- A+
所属分类:编程茶楼
共计 724 个字符,预计需要花费 2 分钟才能阅读完成。
题目
给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。
回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。
回文串不一定是字典当中的单词。
提示:
1 <= s.length <= 1000
s 由小写英文字母组成
示例1
JAVA解法
import java.util.Scanner;
public class LeeCode_01_04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
System.out.println(canPermutePalindrome(line));
}
public static boolean canPermutePalindrome(String line) {
char[] chars = line.toCharArray();
int oneSingle = 0; // 奇数变量的个数
int temp = 256; // 定义一个临时变量存储独一个变量
for (int i = 0; i < chars.length; i++) {
// 重复的奇数字符不再计入
if (temp == chars[i]) {
continue;
}
// 计数各个字符的个数
int count = 0;
for (int j = 0; j < chars.length; j++) {
if (chars[i] == chars[j]) {
count++;
}
}
if (count % 2 != 0) {
oneSingle++;
temp = chars[i];
}
}
return oneSingle <= 1;
}
}
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫