python-写三个判断函数即可。

while True:
    def test_1(s):       # 判断长度
        if len(s) <= 8:
            return False
        return True
    def test_2(s):       # 判断密码组成是否合法
        flag_1 = 0
        flag_2 = 0
        flag_3 = 0
        flag_4 = 0
        for x in s:
            if 47 < ord(x) < 58:
                flag_1 = 1
            elif 64 < ord(x) < 91:
                flag_2 = 1
            elif 96 < ord(x) < 123:
                flag_3 = 1
            else:
                flag_4 = 1
        if flag_1 + flag_2 + flag_3 + flag_4 > 2:
            return True
        else:
            return False
    def test_3(s):           # 判断是否存在长度为3的重复子串
        if len(s) < 4:
            return True
        temp = set()
        for i in range(len(s)-2):
            temp.add(s[i:i+3])
        if len(temp) < len(s)+1-3:
            return False
        return True
    try:
        s = input()
        if test_1(s) and test_2(s) and test_3(s):
            print('OK')
        else:
            print('NG')
    except:
        break