题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
package main
import (
"fmt"
)
func main() {
var input string
fmt.Scan(&input)
var res int
// 长度测试
length:=len(input)
switch{
case length<=4:
res+=5
case 5<=length&&length<=7:
res+=10
case length>=8:
res+=25
}
// 字母方面的测试
low:=false
upper:=false
num:=0
sign:=0
for _,v:=range input{
if v>='a'&&v<='z'{
low=true
}else if v>='A'&&v<='Z'{
upper=true
}else if v>='0'&&v<='9'{
num++
}else{
sign++
}
}
if low&&upper{
res+=20
}else if low||upper{
res+=10
}
// 第三关数字测试
if num==1{
res+=10
}
if num>1{
res+=20
}
// 第四关
if sign==1{
res+=10
}
if sign>1{
res+=25
}
// 第五关
if (low&&upper)&&(num>=1)&&(sign>=1){
res+=5
}else if (low||upper)&&(num>=1)&&(sign>=1){
res+=3
}else if(low||upper)&&(num>=1){
res+=2
}
switch {
case res >= 90:
fmt.Println("VERY_SECURE")
case res < 90 && res >= 80:
fmt.Println("SECURE")
case res < 80 && res >= 70:
fmt.Println("VERY_STRONG")
case res < 70 && res >= 60:
fmt.Println("STRONG")
case res < 60 && res >= 50:
fmt.Println("AVERAGE")
case res < 50 && res >= 25:
fmt.Println("WEAK")
case res < 25 && res >= 0:
fmt.Println("VERY_WEAK")
}
}


