level 9
递归哥
楼主
题目描述:266. Palindrome Permutation
题目内容:
给定一个字符串,判断是否可以通过重新排列该字符串中的字符,使其成为一个回文串(Palindrome)。
回文串定义: 正读和反读都相同的字符串。例如 "madam"、"racecar"、"abba"、"a"、"" 都是回文串。
示例:
• 示例 1:
• 输入:"code"
• 输出:false
• 解释:无法通过重新排列字符使 "code" 成为回文串。
• 示例 2:
• 输入:"aab"
• 输出:true
• 解释:可以重新排列为 "aba",这是一个回文串。
• 示例 3:
• 输入:"carerac"
• 输出:true
• 解释:原字符串已经是回文串,或者可以重排为回文,如 "carerac" 本身就是回文的。
🎯 实现你的代码
public boolean canPermutePalindrome(String s) {
}
```java
public boolean canPermutePalindrome(String s) {
// 使用 HashMap 来统计每个字符出现的次数
Map<Character, Integer> charCount = new HashMap<>();
// 遍历字符串,统计每个字符出现的次数
for (char c : s.toCharArray()) {
charCount.put(c, charCount.getOrDefault(c, 0) + 1);
}
// 统计出现奇数次的字符的个数
int oddCount = 0;
for (Map.Entry<Character, Integer> entry : charCount.entrySet()) {
Integer value = entry.getValue();
if (value % 2 == 1) {
oddCount += 1;
}
if (oddCount > 1) {
return false;
}
}
// 最终奇数次的字符数 <= 1,可以构成回文
return true;
}
```
2025年10月17日 11点10分
1
题目内容:
给定一个字符串,判断是否可以通过重新排列该字符串中的字符,使其成为一个回文串(Palindrome)。
回文串定义: 正读和反读都相同的字符串。例如 "madam"、"racecar"、"abba"、"a"、"" 都是回文串。
示例:
• 示例 1:
• 输入:"code"
• 输出:false
• 解释:无法通过重新排列字符使 "code" 成为回文串。
• 示例 2:
• 输入:"aab"
• 输出:true
• 解释:可以重新排列为 "aba",这是一个回文串。
• 示例 3:
• 输入:"carerac"
• 输出:true
• 解释:原字符串已经是回文串,或者可以重排为回文,如 "carerac" 本身就是回文的。
🎯 实现你的代码
public boolean canPermutePalindrome(String s) {
}
```java
public boolean canPermutePalindrome(String s) {
// 使用 HashMap 来统计每个字符出现的次数
Map<Character, Integer> charCount = new HashMap<>();
// 遍历字符串,统计每个字符出现的次数
for (char c : s.toCharArray()) {
charCount.put(c, charCount.getOrDefault(c, 0) + 1);
}
// 统计出现奇数次的字符的个数
int oddCount = 0;
for (Map.Entry<Character, Integer> entry : charCount.entrySet()) {
Integer value = entry.getValue();
if (value % 2 == 1) {
oddCount += 1;
}
if (oddCount > 1) {
return false;
}
}
// 最终奇数次的字符数 <= 1,可以构成回文
return true;
}
```