一、题目:

密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。

一、密码长度:

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_SECURE、SECURE,VERY_STRONG,STRONG,AVERAGE,WEAK,VERY_WEAK,
请根据输入的密码字符串,进行安全评定。

注:

字母:a-z, A-Z、数字:-9、符号包含如下: (ASCII码表可以在UltraEdit的菜单view->ASCII Table查看)、!"#$%&'()*+,-./  (ASCII码:x21~0x2F)、:;<=>?@ (ASCII<=><=><=><=><=>码:x3A~0x40)、[\]^_`(ASCII码:x5B~0x60)、{|}~  (ASCII码:x7B~0x7E)

输入描述:

本题含有多组输入样例。
每组样例输入一个string的密码

输出描述:

每组样例输出密码等级

二、输入输出示例:


三、代码:

#include<iostream>
using namespace std;
#include<string>
int main()
{string s;while(cin>>s){int res = 0;//密码长度if(s.size() <= 4){res += 5;}else if(s.size() >= 5 && s.size() <= 7){res += 10;}else{res += 25;}//字母和数字int flag1,flag2;  //flag1对应大写字母 flag2对应小写字母flag1 = flag2 = 0;int flag3 = 0;    //flag3表示数字个数int flag4 = 0;    //flag4表示符号个数for(int i=0;i<s.size();i++){if(s[i] >= 'A' && s[i] <= 'Z'){flag1 = 1;}else if(s[i] >= 'a' && s[i] <= 'z'){flag2 = 1;}else if(s[i] >= '0' && s[i] <= '9'){flag3++;}else{flag4++;}}//字母if(flag1 + flag2 == 1){res += 10;}else if(flag1 +flag2 == 2){res += 20;}//数字if(flag3 == 1){res += 10;}else if(flag3 > 1){res += 20;}//符号if(flag4 == 1){res += 10;}else if(flag4 > 1){res += 25;}//奖励if(flag1 + flag2 == 1  && flag3 != 0){res += 2;}else if(flag1 + flag2 == 1 && flag3 != 0 && flag4 != 0){res += 3;}else if(flag1 + flag2 == 2 && flag3 != 0 && flag4 != 0){res += 5;}//评分if(res >= 90){cout<<"VERY_SECURE"<<endl;}else if(res >= 80){cout<<"SECURE"<<endl;}else if(res >= 70){cout<<"VERY_STRONG"<<endl;}else if(res >= 60){cout<<"STRONG"<<endl;}else if(res >= 50){cout<<"AVERAGE"<<endl;}else if(res >= 25){cout<<"WEAK"<<endl;}else{cout<<"VERY_WEAK"<<endl;}}system("pause");return 0;
}

华为机试:密码强度等级相关推荐

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

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

  2. 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 金九银十,金三银四.当前正处于校招.社招的火热期,之前就想为正在筹备就业的同学们准备刷题宝 ...

  3. Java算法:华为机试算法(下),华为算法Java版,牛客网华为算法73~108题

    接上篇:Java算法:华为机试算法(中),华为算法Java版,牛客网华为算法55~72题   HJ73 计算日期到天数转换 计算日期到天数转换 题目描述 根据输入的日期,计算是这一年的第几天.. 测试 ...

  4. 【华为机试】死记硬背没思路?一般人我劝你还是算了吧

    大家好,我是哪吒. 五月份之前,如果你参加华为OD机试,收到的应该是2022Q4或2023Q1,这两个都是A卷题. 5月10日之后,很多小伙伴收到的是B卷,那么恭喜你看到本文了,抓紧刷题吧.B卷新题库 ...

  5. 华为机试108题(C 语言解答)

    Nowcoder题库链接:华为机试 HJ1 字符串最后一个单词的长度(字符串) 输入:hello nowcoder输出:8说明: 最后一个单词为nowcoder,长度为8 示例代码: HJ1.c #i ...

  6. 【华为机试真题Java】从入门到入职-真题列表导读

    写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...

  7. 牛客在线编程-华为机试-中等

    牛客在线编程题目-华为机试-中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21.21% HJ17 坐标移动 字符串 中等 24.79% HJ20 密码验证合格程序 数组 字 ...

  8. 华为机试—介绍、剖析、建议

    一.华为机试介绍 1.大致介绍 时间:120分钟 环境:Visual Studio(去年是vs2005).Visual C++.VC 6.0.Eclipse(Java) 题量:共3题 初级题--60分 ...

  9. 华为机试在线训练--牛客网(python)第四部分

    华为机试在线训练–牛客网(python) 第四部分(31~40) 第三十一题:[中级]单词倒排 题目描述 对字符串中的所有单词进行倒排. 说明: 1.每个单词是以26个大写或小写英文字母构成: 2.非 ...

  10. 集合篇10.华为机试(涮题记录2)

    华为机试 31.成绩排序(**not) 32. 矩阵乘法 33. 24点游戏算法(not) 34.配置文件恢复 35. 查找两个字符串a.b中的最长公共子串 36.MP3光标位置(not) 37.DN ...

最新文章

  1. 三层交换机----VRRP协议学习
  2. Exact跻身全球发展最快的云企业行列
  3. java B2B2C springmvc mybatis电子商务平台源码-Spring Cloud Security
  4. 直播实录 | 基于生成模型的事件流研究 + NIPS 2017 论文解读
  5. android 经纬度的范围内,在Android里如何判断一个指定的经纬度点是否落在一个多边形区域内...
  6. 浅谈android中的自定义封装易用的Dialog
  7. 新的“钉子户”来了!一加9RT将于10月13日正式亮相
  8. 【java学习之路】(java SE篇)(讨论与思考)异常中的try,catch,return的相关问题
  9. [PBRT-V3]怎么对比不同渲染算法的效果
  10. matlab学习路线
  11. yui compressor php,通过yuicompressor-2.4.7压缩css或js的php应用文件
  12. 在微信公众平台做HTML5游戏经验谈
  13. P1359 租用游艇
  14. 计算机上找不到运行程序怎么办,Win7出现窗口提示找不到应用程序怎么办?
  15. mysql localhost值_jdbc:mysql://localhost:3306/mysql这句话中localhost具体指什么的localhost?能修改么?在哪里配置的?...
  16. 口红会染唇是什么意思_最强科普!口红、唇膏、唇釉、染唇液究竟区别在哪?...
  17. 【AIOT】Python语音处理
  18. 网页添加QQ好友的方法
  19. 关于godot第三方功能增强版
  20. SPI通讯协议详解 基于STM32

热门文章

  1. jhipster uaa认证原理
  2. 深圳入户办理:阎王的愿景是好的,小鬼的道路是曲折的
  3. oracle 中几种排序方法
  4. javamail复杂格式邮件,带附件,html格式,d图片,超链接
  5. 最大公约数的四种方法
  6. Charles工具疑难杂症汇总
  7. [BZOJ 2460] 元素
  8. Python+selenium自动化测试框架
  9. python浮点数保留两位小数_python中保留两位小数
  10. 扫盲:-zilla的来源