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

查看11道真题和解析