LeetCode 2299. 强密码检验器 II缩略图

如果一个密码满足以下所有条件,我们称它是一个  密码:

  • 它有至少 8 个字符。
  • 至少包含 一个小写英文 字母。
  • 至少包含 一个大写英文 字母。
  • 至少包含 一个数字 。
  • 至少包含 一个特殊字符 。特殊字符为:"!@#$%^&*()-+" 中的一个。
  • 它  包含 2 个连续相同的字符(比方说 "aab" 不符合该条件,但是 "aba" 符合该条件)。

给你一个字符串 password ,如果它是一个  密码,返回 true,否则返回 false 。

2299. 强密码检验器 II – 力扣(Leetcode)

LeetCode 2299. 强密码检验器 II插图
OpenCV步步精深-可心科创工作室

思路:

按照题意来写就行了。

python3实现:

class Solution:
    def strongPasswordCheckerII(self, password: str) -> bool:
        # 根据题意写即可。
        lower_list = [chr(i) for i in range(97, 123)]
        higher_list = [chr(j) for j in range(65,91)]
        num_list = ["0","1","2","3","4","5","6","7","8","9"]
        special_list = ["!","@","#","$","%","^","&","*","(",")","-","+"]
        if len(password) < 8:
            return False
        lower_flag = "F"
        higher_flag = "F"
        num_flag = "F"
        special_flag = "F"
        new_password = "~" + password
        p = 1
        tmp = new_password[0]
        while p <= len(new_password) - 1:
            if new_password[p] == tmp:
                return False
            if new_password[p] in lower_list:
                lower_flag = "T"
            if new_password[p] in higher_list:
                higher_flag = "T"
            if new_password[p] in num_list:
                num_flag = "T"
            if new_password[p] in special_list:
                special_flag = "T"
            tmp = new_password[p]
            p += 1

        if lower_flag == higher_flag == num_flag == special_flag == "T":
            return True
        print(lower_flag, higher_flag,num_flag,special_flag)
        return False
LeetCode 2299. 强密码检验器 II插图1
OpenCV步步精深-可心科创工作室

更多干货见 OpenCV步步精深

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注