杨钦元 博客

python 练习题

## 一个强密码应满足以下所有条件:

由至少6个,至多20个字符组成。 至少包含一个小写字母,一个大写字母,和一个数字。 同一字符不能连续出现三次 (比如 “…aaa…” 是不允许的, 但是 “…aa…a…” 是可以的)。 编写函数 strongPasswordChecker(s),s 代表输入字符串,如果 s 已经符合强密码条件,则返回0;否则返回要将 s 修改为满足强密码条件的字符串所需要进行修改的最小步数。

插入、删除、替换任一字符都算作一次修改。

def strongPasswordChecker(self, s):
    """
    :type s: str
    :rtype: int
    """
    s = 0  s 条件如果满足一个条件则加一
    s_len = len(s)
    if 6 <len(s)<=20:
        for i in s:
            if i.isdigit():
                s += 1
                break
            else:
                continue
        for i in s:
            if i.islower():
                s += 1
                break
            else:
                continue
        for i in s:
            if i.isupper():
                s += 1
                break
            else:
                continue                    
        for i in s:
            sc = s.count(i)
            if len(sc)>=3:
                if i*sc in s:
                    s +=1
                else:
                    continue
    if s==0:
        print('需要修改3步')
    if s==1:
        print('需要修改2步')
    if s==2:
        print('需要修改1步')