题解 | 密码验证合格程序
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
package main import ( "fmt" ) func main() { var p string for { n, _ := fmt.Scan(&p) if n == 0 { break } else { fmt.Printf("%s\n", checkPasswd(p)) } } } func checkPasswd(p string) string { hasA, hasa, has1, has_ := 0, 0, 0, 0 if len(p) < 8 { return "NG" } for _, c := range p { if c > 32 && c < 127 { if c >= '0' && c <= '9' { has1 = 1 } else if c >= 'A' && c <= 'Z' { hasA = 1 } else if c >= 'a' && c <= 'z' { hasa = 1 } else { has_ = 1 } } else { return "NG" } } if hasA+hasa+has1+has_ < 3 { return "NG" } for i := 0; i < len(p)-3; i++ { left := i right := left + 2 for { right++ if right+3 > len(p) { break } if p[left] == p[right] { if left == right { continue } if p[left+1] == p[right+1] && p[left+2] == p[right+2] { return "NG" } } } } return "OK" }