题解 | #牛群密码 - 有效回文#

牛群密码 - 有效回文

https://www.nowcoder.com/practice/98fad63b47544d5ebf4042fc53b54b3d

  • 题目考察的知识点 : 字符串
  • 题目解答方法的文字分析:
  1. 先统计字符串中出现的字符种类和频率,然后计算字符串中不同字符的个数 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题的解法思路

全部评论

相关推荐

头像
09-05 20:36
门头沟学院 C++
多面手的小八想要自然醒:经典绿豆汤,无豆无糖
投递华为等公司10个岗位
点赞 评论 收藏
分享
头像
09-16 12:33
拐儿中学 Java
希希睿:我都忘了我是来找工作的了😂就看你们皮
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务