题目链接 点此跳转
题目要求:

解题思路:
将每个加分项都写成一个方法,思路逻辑清晰,依次完成每一个加分方法,再写一个比较等级的方法,最后再main函数里面输出即可:

代码如下:

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Stack;public class TestDemo   {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);while (scanner.hasNext()){String password=scanner.nextLine();System.out.println(getLevel(password));}scanner.close();}public static String getLevel(String password){int sum=0;sum+=lengthAdd(password);sum+=zmAdd(password);sum+=numAdd(password);sum+=symbolAdd(password);sum+=rewordAdd(password);if (sum>=90){return "VERY_SECURE";}else if (sum>=80){return "SECURE";}else if (sum>=70){return "VERY_STRONG";}else if (sum>=60){return "STRONG";}else if (sum>=50){return "AVERAGE";}else if (sum>=25){return "WEAK";}else {return "VERY_WEAK";}}public static int lengthAdd(String password){if (password.length()<=4){return 5;}else if (password.length()>=5 && password.length()<=7){return 10;}else {return 25;}}public static int zmAdd(String password){int lower=0;int upper=0;for (int i = 0; i < password.length(); i++) {String ch=String.valueOf(password.charAt(i));if (ch.matches("[A-Z]")){upper++;}else if (ch.matches("[a-z]")){lower++;}}if (upper!=0 && lower!=0){return 20;}else if ((lower!=0 && upper==0) || (lower==0 && upper!=0)){return 10;}else {return 0;}}public static int numAdd(String password){int num=0;for (int i = 0; i < password.length(); i++) {if (password.charAt(i)>='0' && password.charAt(i)<='9'){num++;}}if (num==0){return 0;}else if (num==1){return 10;}else {return 20;}}public static int symbolAdd(String password){int numSymbol=0;for (int i = 0; i < password.length(); i++) {char ch=password.charAt(i);if ((ch>=0x21 && ch<=0x2F) || (ch>=0x3A && ch<=0x40) || (ch>=0x5B && ch<=0x60) || (ch>=0x7B && ch<=0x7E)){numSymbol++;}}if (numSymbol==0){return 0;}else if (numSymbol==1){return 10;}else{return 25;}}public static int rewordAdd(String password){int numPsd=numAdd(password);int zmPsd=zmAdd(password);int symbolPsd=symbolAdd(password);if (zmPsd!=0 && numPsd!=0 && symbolPsd==0){return 2;} else if (zmPsd==10 && numPsd!=0 && symbolPsd!=0){return 3;}else if (zmPsd==20 && numPsd!=0 && symbolPsd!=0){return 5;}else {return 0;}}
}
  • over

【每日一题】 牛客 密码强度等级相关推荐

  1. SQL每日一题 牛客17 10月的新客户单价和获客成本

    试题链接10月的新户客单价和获客成本_牛客题霸_牛客网 分析排行榜第一名的解法 用窗口函数与join连接两个表格来做(要把大象装冰箱,拢共分五步) 第一步:用rank()over()窗口函数按照时间排 ...

  2. 【每日一题】客似云来(斐波那契数列)

    [每日一题]客似云来(斐波那契数列) 文章目录 [每日一题]客似云来(斐波那契数列) 1.题目来源 2.题目描述 3.输入/出描述 4.解题思路 5.代码展示 1.题目来源   牛客网:客似云来 2. ...

  3. [每日一题] 66. 客似云来(fib数列公式)

    1. 题目来源 链接:客似云来 来源:牛客网 2. 题目说明 NowCoder开了一家早餐店,这家店的客人都有个奇怪的癖好:他们只要来这家店吃过一次早餐,就会每天都过来:并且,所有人在这家店吃了两天早 ...

  4. 思维题-牛客网-强迫症的序列

    题目: 链接:https://ac.nowcoder.com/acm/contest/90/J?&headNav=www 来源:牛客网 题目描述 牛客网是IT求职神器,提供海量C++.JAVA ...

  5. 集训队脱单大法:这是一道只能由学姐我自己出数据的水题(牛客竞赛)

    链接:https://ac.nowcoder.com/acm/contest/322/F 来源:牛客网 题目描述 总所不周知!ZZZZone有了女朋友却谁也不知道.但是ZZZZone在集训队总是和陈大 ...

  6. 前端 300题 —— 牛客网

    1 手写jsonp的实现 2 手写链表倒数第K个查找 3 http请求头,请求体,cookie在哪个里面?url在哪里面? 4 原型链的解释 5 对闭包的理解,实现一个暴露内部变量,而且外部可以访问修 ...

  7. 【Scratch】青少年蓝桥杯_每日一题_6.09_密码

    用心写好每一篇文章 效果图 一.题目背景 本题是Scratch编程问题,出现在2020年4月的线上省赛模拟考试中. 二.编程实现 输入用户名"蓝桥杯",密码"123456 ...

  8. C语言入门必刷题-牛客网精选5道

    目录 1.BC12 学生基本信息输入输出 2.BC89 包含数字9的数 3.BC29 开学? 4.BC77 简单计算器 5.BC140 杨辉三角 1.BC12 学生基本信息输入输出 描述 依次输入一个 ...

  9. [补题]牛客练习56,迷宫【orz】

    先上题: 思路:别被题目下到,其实就是一个dp,首先要对题目进行分析. 可得: 1. 它不会向左走, 因为向左走后,右边的格子就空了,那么就又要向右走,它就在这终老. 2. 不会向上走,因为向上走,就 ...

最新文章

  1. 【错误记录】Android 中调用 Process 命令行执行指令 ( java.lang.IllegalThreadStateException: process hasn‘t exited )
  2. java 圆桌_约瑟夫问题求解释(圆桌问题)Java
  3. 深度学习和目标检测系列教程 8-300:目标检测常见的标注工具LabelImg和将xml文件提取图像信息
  4. 无线路由器WiFi密码破解
  5. mikrotik固件升级
  6. linux解锁文件夹
  7. I'm just a baby——8月份英语总结
  8. qq传输文件为什么服务器忙,qq传送离线 接收文件很慢怎么回事
  9. 两天两夜,1M图片优化到100kb
  10. MATLAB三元条件运算符,C++ ?:条件运算符(三目运算符)用法详解
  11. composer安装fxp/composer-asset-plugin
  12. 西门子1500PLC机器人焊接程序(西门子PLC+西门子触摸屏)
  13. 大学生计算机系统推荐,上大学买电脑?最适合大学生学习用的Windows笔记本电脑推荐!...
  14. 《用事实说话》阅读心得
  15. 罗德里格斯公式 理解、推导
  16. 动力节点 SpringMVC P44-53
  17. 将多个npz文件合成成一个由list形式保存的npz文件
  18. html排列图片,css3+html实现微信朋友圈不同尺寸图片排列预览功能
  19. mt6592驱动下载linux,OV13850-mipi-raw-for-MT6592 OV13850 for mtk6592上的驱动 - 下载 - 搜珍网...
  20. 43个云平台通过云计算服务安全评估:阿里云、腾讯云、华为云、曙光云、新华云、金山云、电科云、浪潮云、紫光云、深信服等...

热门文章

  1. 程序员的疯狂:打工与创业的残酷区别
  2. Python源码学习:Python类机制分析-用户自定义类
  3. 数据统计之日增用户统计
  4. Linux之文件权限命令
  5. python运算符(算数运算符、赋值运算符、复合赋值运算符、比较运算符、逻辑运算符)
  6. 漂亮,LSTM模型结构的可视化
  7. 趣谈深度学习核心----激活函数
  8. TypeScript 3.4.5 发布,修复节点运行问题
  9. 苹果应用上架审核规则介绍
  10. Oracle 归档错误案例