题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
package main import ( "bufio" "fmt" "os" "strings" ) func main() { scanner := bufio.NewScanner(os.Stdin) for scanner.Scan() { str := scanner.Text() if len(str) <= 8 { fmt.Printf("NG\n") continue } if strings.Contains(str, " ") || strings.Contains(str, "\n") { fmt.Printf("NG\n") continue } var duplicate = false for i := 0; i < len(str)-3; i++ { if strings.Contains(str[i+3:], str[i:i+3]) { fmt.Printf("NG\n") duplicate = true break } } if duplicate { continue } var counts = [4]int{0} for _, char := range str { if char >= 'a' && char <= 'z' { counts[0]++ } else if char >= 'A' && char <= 'Z' { counts[1]++ } else if char >= '0' && char <= '9' { counts[2]++ } else { counts[3]++ } } var diff int for _, val := range counts { if val > 0 { diff++ } } if diff >= 3 { fmt.Printf("OK\n") continue } else { fmt.Printf("NG\n") continue } } }