今天和大家聊的问题叫做 回文排列,我们先来看题面:https://leetcode-cn.com/problems/palindrome-permutation/
Given a string, determine if a permutation of the string could form a palindrome.
给定一个字符串,判断该字符串中是否可以通过重新排列组合,形成一个回文字符串。
示例
示例 1: 输入: “code” 输出: false 示例 2: 输入: “aab” 输出: true 示例 3: 输入: “carerac” 输出: true
解题
统计字符的数量,奇数个的只能有0个或1个。所以用个字典统计各个字符出现的频次,然后再统计频次为奇数的个数。
class Solution: def canPermutePalindrome(self, s: str) -> bool: dic = {} for c in s: if dic.get(c) == None: dic[c] = 1 else: dic[c] += 1 count = 0 for num in dic.values(): if num % 2 == 0: continue else: count += 1 if count > 1: return False return True
好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。