2299. 强密码检验器 II
思路(Java)
首先设置一个flag数组,表示第2-5项是否满足
- 首先判断长度,小于8直接return false
- 遍历字符串,将其中第2-5个条件进行判断,只要有满足条件的那么f对应的flag[i]直接设为1,然后下次就不再需要进行此次判断(通过flag的值是否为0进行判断,如果为0,那么就继续进行判断,如果为1,那么就已存在满足条件的值,跳过即可)
- 最后一个条件,在遍历过程中,只要存在两个相同的连续字符,直接返回return false,节约时间
参考代码
public boolean strongPasswordCheckerII(String password) {
int len = password.length();
int[] flag = new int[4];
char[] str = password.toCharArray();
if(len < 8){
return false;
}
for(int i = 0; i < len; i++){
if(flag[0] == 0 && str[i] >= 'a' && str[i] <= 'z'){
flag[0] = 1;
}
if(flag[1] == 0 &&

该博客主要解析LeetCode第2299题——强密码检验器II的Java解决方案。作者首先介绍了问题背景和思路,利用一个flag数组记录特定条件是否满足。在确保字符串长度至少为8的情况下,遍历字符串,针对每个条件进行判断,一旦找到符合条件的字符,立即标记并跳过后续检查。同时,若发现连续重复字符,则直接返回false。文章提供了详细的参考代码实现。
最低0.47元/天 解锁文章
268

被折叠的 条评论
为什么被折叠?



