题解 | #密码验证合格程序#

密码验证合格程序

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
		}
	}
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
今天 11:45
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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