题解 | 密码验证合格程序

密码验证合格程序

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"

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-20 18:18
是不是意味着秋招就完蛋了
花不开柳成荫:如果你是Java,是的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务