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

密码验证合格程序

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

全部评论

相关推荐

06-18 13:28
已编辑
门头沟学院 Web前端
爱睡觉的冰箱哥:《给予你300的工资》,阴的没边了
点赞 评论 收藏
分享
05-14 09:24
青岛工学院 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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