题解 | #密码验证合格程序#

密码验证合格程序

https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841

package main

import (
	"bufio"
	"fmt"
	"os"

)

func main() {
    scan:=bufio.NewScanner(os.Stdin)
    for scan.Scan(){
        flag:=true
        input:=scan.Text()
        // 第一轮验证
        if len(input)<8{
            flag=false
        }
        // 第二轮验证
        boolarr:=[]bool{false,false,false,false}
        for _,v:=range input{
            switch{
                case  v>='a'&&v<='z':
                boolarr[0]=true
                case v>='A'&&v<='Z':
                boolarr[1]=true
                case v>='0'&&v<='9':
                boolarr[2]=true
                default:
                boolarr[3]=true
            }
        }
        truemun:=0
        for _,v:=range boolarr{
            if v{
                truemun++
            }
        }
        if truemun<3{
            flag=false
        }
        // 第三轮验证
        // 这里注意实际上是三位的滑动
        mymap:=make(map[string]bool)
        for i:=0;i<len(input)-2;i++{
            if _,ok:=mymap[input[i:i+3]];!ok{
                mymap[input[i:i+3]]=true
            }else{
                flag=false
                break
            }
        }
        // 最后结果
        if flag{
            fmt.Println("OK")
        }else{
            fmt.Println("NG")
        }

    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务