题解 | #密码验证合格程序#
密码验证合格程序
https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
package main
import (
"fmt"
"bufio"
"os"
)
func main() {
reader := bufio.NewScanner(os.Stdin)
for reader.Scan() {
s := reader.Text()
if IsValid(s) {
fmt.Println("OK")
} else {
fmt.Println("NG")
}
}
}
func IsValid(s string) bool {
if len(s) <= 8 {
return false
}
m := map[rune]bool{}
for _, v := range s {
switch {
case v >= 'A' && v <= 'Z':
m['A'] = true
case v >= 'a' && v <= 'z':
m['a'] = true
case v >= '0' && v <= '9':
m['0'] = true
default:
if v != ' ' && v != '\n' {
m['@'] = true
}
}
}
if len(m) < 3 {
return false
}
md := make(map[string]bool)
for i := 0; i < len(s)-2; i++ {
if _, ok := md[s[i:i+3]]; !ok {
md[s[i:i+3]] = true
} else {
return false
}
}
return true
}
查看14道真题和解析