【华为OJ】【算法总篇章】


【华为OJ】【086-密码强度等级】

【工程下载】


题目描述

密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。
一、密码长度:5 分: 小于等于4 个字符10 分: 5 到7 字符25 分: 大于等于8 个字符二、字母:0 分: 没有字母10 分: 全都是小(大)写字母20 分: 大小写混合字母三、数字:0 分: 没有数字10 分: 1 个数字20 分: 大于1 个数字四、符号:0 分: 没有符号10 分: 1 个符号25 分: 大于1 个符号五、奖励:2 分: 字母和数字3 分: 字母、数字和符号5 分: 大小写字母、数字和符号最后的评分标准:>= 90: 非常安全>= 80: 安全(Secure)>= 70: 非常强>= 60: 强(Strong)>= 50: 一般(Average)>= 25: 弱(Weak)>= 0:  非常弱对应输出为:VERY_WEAK,WEAK,AVERAGE,STRONG,VERY_STRONG,SECURE,VERY_SECURE请根据输入的密码字符串,进行安全评定。注:字母:a-z, A-Z数字:-9符号包含如下: (ASCII码表可以在UltraEdit的菜单view->ASCII Table查看)!"#$%&'()*+,-./     (ASCII码:x21~0x2F):;<=>?@             (ASCII<=><=><=><=><=>码:x3A~0x40)[\]^_`              (ASCII码:x5B~0x60){|}~                (ASCII码:x7B~0x7E)接口描述:Input Param : String pPasswordStr:    密码,以字符串方式存放。
Return Value : 根据规则评定的安全等级。
public static Safelevel GetPwdSecurityLevel(String pPasswordStr) {/*在这里实现功能*/return null;
}

输入描述

输入一个string的密码

输出描述

输出密码等级

输入例子

38$@NoNoNo

输出例子

VERY_SECURE

算法实现

import java.util.Scanner;/*** Author: 王俊超* Date: 2016-01-04 10:08* Declaration: All Rights Reserved !!!*/
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);
//        Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt"));while (scanner.hasNext()) {String s = scanner.nextLine();System.out.println(getPwdSecurityLevel(s));}scanner.close();}private static String getPwdSecurityLevel(String s) {int len = s.length();int num = 0;int lowerCase = 0;int upperCase = 0;int ch = 0;int score = 0;for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c >= '0' && c <= '9') {num++;} else if (c >= 'A' && c <= 'Z') {upperCase++;} else if (c >= 'a' && c <= 'z') {lowerCase++;} else if (c >= 0x21 && c <= 0x2F || c >= 0x3A && c <= 0x40|| c >= 0X5B && c <= 0x60 || c >= 0x7B && c <= 0x7E) {ch++;}}// 一、密码长度if (len <= 4) {score += 5;} else if (len <= 7) {score += 10;} else {score += 25;}// 二、字母if (lowerCase > 0) {score += 10;}if (upperCase > 0) {score += 10;}// 三、数字if (num == 1) {score += 10;} else if (num > 1) {score += 20;}// 四、符号if (ch == 1) {score += 10;} else if (ch > 1) {score += 25;}if (num > 0 && (upperCase > 0 || lowerCase > 0)) {score += 2;if (ch > 0) {score += 1;if (upperCase > 0 && lowerCase > 0) {score += 2;}}}if (score >= 90) {return "VERY_SECURE";} else if (score >= 80) {return "SECURE";} else if (score >= 70) {return "VERY_STRONG";} else if (score > 60) {return "STRONG";} else if (score >= 50) {return "AVERAGE";} else if (score >= 25) {return "WEAK";} else {return "VERY_WEAK";}}
}

【华为OJ】【086-密码强度等级】相关推荐

  1. 华为OJ(密码强度等级)

    题目:密码强度等级 描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二 ...

  2. 【华为 OJ 】密码强度等级

    密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二.字母: 0 分: 没有字 ...

  3. 华为oj初级 密码强度等级

    描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二.字母: 0 分: ...

  4. 【华为 OJ】密码验证合格程序

    密码要求: 1.长度超过8位 2.包括大小写字母.数字.其它符号,以上四种至少三种 3.不能有相同长度超2的子串重复 说明:长度超过2的子串 输入描述: 一组或多组长度超过2的子符串.每组占一行 输出 ...

  5. 华为机试-密码强度等级

    题目描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二.字母: 0 分 ...

  6. 华为OJ——密码强度等级

    题目描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二.字母: 0 分 ...

  7. 华为机试:密码强度等级、百钱买百鸡问题

    1.密码强度等级 题目描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 ...

  8. 【字符串2】(删除公共字符、合法括号序列判断、两种排序方法、密码强度等级)

    字符串题集 1. 删除公共字符 题目描述 题目分析 C++代码 2. 合法括号序列判断 题目描述 题目分析 C++代码 3. 两种排序方法 题目描述 题目分析 C++代码 4. 密码强度等级 题目描述 ...

  9. 华为交换机 consolep密码和vty密码配置telnet,ssh

    以登录用户界面的认证方式为密码认证,密码为Huawei@123为例,配置如下. <HUAWEI> system-view [HUAWEI] user-interface console 0 ...

最新文章

  1. 接口转发和重定向区别(四)
  2. 用python画猫咪怎么画-Turtle库画小猫咪
  3. 计算机排版基础知识,计算机排版基础知识.pdf
  4. 第六十七篇、OC_UITableView head下拉图片放大的效果
  5. 网络爬虫:基于对象持久化实现爬虫现场快速还原
  6. html首字母样式,html标签手册
  7. mybatis学习(53):构造方法映射
  8. echarts mysql_ECharts实现mysql 数据图表化
  9. 更深更宽的孪生网络,有效提升目标跟踪精度,代码开源
  10. everything 中文免安装_GTA5中文免安装版
  11. 震惊,杨幂的脸竟然出现在了她的身体上
  12. Linux网络管理常用命令:net-tools VS iproute2
  13. 彻底删除MySQL教程
  14. IDEA 如果修改工作区的主题 也就是黑色背景和白色背景
  15. Tomcat 修改端口号
  16. 【冰糖Python】深度森林 DeepForest
  17. 关于CUDA,cuDNN,TF,CUDA驱动版本兼容问题
  18. CCF-CSP 新生必读
  19. python入门基础知识(九):函数
  20. 分时线的9代表什么_一位从亏损到稳赚的老股民告诉你:为什么要打板?

热门文章

  1. 决策易|营销管理,让流向数据说话!
  2. XM外汇平台:句句箴言!外汇投资交易市场的九大生存准则
  3. linux显示远程命令执行情况,判断ssh远程命令是否执行结束
  4. 2.1 版本gojs 消除水印 各种版本gojs 同理
  5. MFC关于Menu菜单事件不响应问题
  6. cad怎么输出为pdf?这个办法不妨试试
  7. 你不知道的钣金加工工艺知识,简直不要太全面!
  8. Bootstrap练习:京东商城轮播图
  9. Qt 读写txt文件
  10. c语言奶酪工厂思路,《奶酪工厂》塔全介绍