2299.强密码检验器 II
【LetMeFly】2299.强密码检验器 II
力扣题目链接:https://leetcode.cn/problems/strong-password-checker-ii/
如果一个密码满足以下所有条件,我们称它是一个 强 密码:
- 它有至少
8
个字符。 - 至少包含 一个小写英文 字母。
- 至少包含 一个大写英文 字母。
- 至少包含 一个数字 。
- 至少包含 一个特殊字符 。特殊字符为:
"!@#$%^&*()-+"
中的一个。 - 它 不 包含
2
个连续相同的字符(比方说"aab"
不符合该条件,但是"aba"
符合该条件)。
给你一个字符串 password
,如果它是一个 强 密码,返回 true
,否则返回 false
。
示例 1:
输入:password = "IloveLe3tcode!" 输出:true 解释:密码满足所有的要求,所以我们返回 true 。
示例 2:
输入:password = "Me+You--IsMyDream" 输出:false 解释:密码不包含数字,且包含 2 个连续相同的字符。所以我们返回 false 。
示例 3:
输入:password = "1aB!" 输出:false 解释:密码不符合长度要求。所以我们返回 false 。
提示:
1 <= password.length <= 100
password
包含字母,数字和"!@#$%^&*()-+"
这些特殊字符。
方法一:模拟
对于“是否有两个连续的相同字符”,我们可以开辟一个变量来记录上一个字符是什么,如果这个字符和上一个字符相同则直接返回false
对于“是否含有大写字母”、“是否含有小写字母”、“是否含有数字”,则很容易判断
如果既不是大小写字母,又不是数字,则就是特殊字符(因为题目中说了只包含这些字符,所以在不满足前三种的情况下就不用再特判是否为特殊字符了)
- 时间复杂度$O(len(password))$
- 空间复杂度$O(1)$
AC代码
C++
1 |
|
Python
1 |
|
同步发文于CSDN,原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/128738747
2299.强密码检验器 II
https://blog.letmefly.xyz/2023/01/19/LeetCode 2299.强密码检验器II/