题解 | #密码验证合格程序#
密码验证合格程序
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") } } }