题解 | #牛群密码 - 有效回文#
牛群密码 - 有效回文
https://www.nowcoder.com/practice/98fad63b47544d5ebf4042fc53b54b3d
- 题目考察的知识点 : 字符串
- 题目解答方法的文字分析:
- 先统计字符串中出现的字符种类和频率,然后计算字符串中不同字符的个数 cnt,如果 cnt 小于等于 k,则可以构成回文字符串;如果 cnt 大于 k+1,则一定不能构成回文字符串;否则,如果存在一个字符出现了奇数次,则可以将其删去得到回文字符串,否则不能构成回文字符串。
- 本题解析所用的编程语言: Python
- 完整且正确的编程代码
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param password string字符串 # @param k int整型 # @return bool布尔型 # class Solution: def isValidPalindrome(self, password: str, k: int) -> bool: if len(password) <= 1: return True # 统计字符串中出现的字符种类 freq = {} for c in password: freq[c] = freq.get(c, 0) + 1 # 计算字符串中不同字符的个数 cnt = len(freq) if cnt > k: return False # 如果有一个字符出现了奇数次,可以将其删去得到回文字符串 # 否则不能构成回文字符串 return sum(v % 2 == 1 for v in freq.values()) <= 1
牛客高频top202题解系列 文章被收录于专栏
记录刷牛客高频202题的解法思路