每日OJ题_牛客HJ87 密码强度等级(IO型OJ)

目录

牛客HJ87 密码强度等级

解析代码


牛客HJ87 密码强度等级

密码强度等级_牛客题霸_牛客网

题目描述

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

一、密码长度:
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)

对应输出为:

VERY_SECURE
SECURE
VERY_STRONG
STRONG
AVERAGE
WEAK
VERY_WEAK

请根据输入的密码字符串,进行安全评定。

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

提示:
1 <= 字符串的长度<= 300

输入描述:

输入一个string的密码

输出描述:

输出密码等级


解析代码

#include <cctype>
#include <iostream>
#include <string>
using namespace std;
int level(string str)
{int ret = 0;int n = str.size(); // 长度if (n <= 4)ret += 5;else if (n >= 5 && n <= 7)ret += 10;elseret += 25;//cout << "长度" << n << "分数" << ret << endl;int low = 0, gre = 0, cnt0 = 0; // 0字母for (auto& e : str) {if (islower(e))++low;else if (isupper(e))++gre;cnt0 = low + gre;}if (low && gre == 0)ret += 10;else if (gre && low == 0)ret += 10;else if (gre && low)ret += 20;int cnt1 = 0; // 1数字for (auto& e : str) {if (isdigit(e))++cnt1;}if (cnt1 == 1)ret += 10;else if (cnt1 > 1)ret += 20;int cnt2 = 0; // 2符号for (auto& e : str){if (e >= 0x21 && e <= 0x2F|| e >= 0x3A && e <= 0x40|| e >= 0x5B && e <= 0x60|| e >= 0x7B && e <= 0x7E)++cnt2;}if (cnt2 == 1)ret += 10;else if (cnt2 > 1)ret += 25;if (low && gre && cnt1 && cnt2) // 加分ret += 5;else if (cnt0 && cnt1 && cnt2)ret += 3;else if (cnt0 && cnt1)ret += 2;return ret;
}int main()
{string str;cin >> str;int res = level(str);//cout << res;if (res >= 90)cout << "VERY_SECURE";else if (res >= 80)cout << "SECURE";else if (res >= 70)cout << "VERY_STRONG";else if (res >= 60)cout << "STRONG";else if (res >= 50)cout << "AVERAGE";else if (res >= 25)cout << "WEAK";elsecout << "VERY_WEAK";return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/521576.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字工厂管理系统如何帮助电子企业改善仓储难题

随着科技的飞速发展&#xff0c;电子企业面临着日益增长的仓储管理挑战。传统的仓储管理模式已经难以满足企业高效、准确、实时的管理需求&#xff0c;因此&#xff0c;数字工厂管理系统的引入成为解决这一难题的关键。数字工厂管理系统通过集成先进的信息技术&#xff0c;为电…

Unity零基础到进阶 | Unity中 屏蔽指定UI点击事件 的多种方法整理

Unity零基础到进阶 | Unity中 屏蔽指定UI点击事件 的多种方法整理一、Unity中 屏蔽透明区域的点击事件1.1 使用Image组件自带的参数检测1.2 根据点击的坐标计算该点的像素值是否满足阈值 二、Unity中屏蔽 不规则图片按钮点击的事件 总结 &#x1f3ac; 博客主页&#xff1a;htt…

​谷歌seo外链服务哪家好?

首先你要知道的&#xff0c;就是外链能起到的作用&#xff0c;不是说工具查一查外链数有增加就可以的&#xff0c;外链最重要的作用就是提升关键词排名&#xff0c;发的外链没有效果是没有任何意义的&#xff0c;而且外链基本上是一次性服务&#xff0c;服务完了没有效果完全就…

day9 指针 函数封装

1&#xff1a;在主函数定义字符数组&#xff0c;在自定义函数中实现字符串比较 4 int my_strcmp(char *a,char *b);5 int main(int argc, const char *argv[])6 {7 //strcmp 函数比叫ascii码值大小8 char a[10]"hello";9 char b[10]"helloo";1…

NTFS安全权限

NTFS是新技术文件系统&#xff08;New Technology File System&#xff09;的缩写&#xff0c;是一种用于Windows操作系统的文件系统。NTFS提供了高级的功能和性能&#xff0c;包括文件和目录的权限控制、加密、压缩以及日志等。它被广泛应用于Windows NT、Windows 2000、Windo…

神州大地人类来源猜想

在公元前2000年以前&#xff0c;伟大的中华民族还是石器时代&#xff0c;我们有很多美好的神话和传说&#xff0c;三皇五帝就是这个时代伟大部落或者部落首领的故事。 关于人类的历史&#xff0c;从基因学上最新的研究成果大概是这样的&#xff0c;虽然从300万年前就诞生了人类…

波卡 Alpha 计划启动,呼唤先锋创新者重新定义 Web3 开发

原文&#xff1a;https://polkadot.network/blog/the-polkadot-alpha-program-a-new-era-for-decentralized-building-collaboration/ 编译&#xff1a;OneBlock 区块链领域不断发展&#xff0c;随之而来的是发展和创新机会的增加。而最新里程碑是令人振奋的 Polkadot Alpha …

Hi3516DV500+SC2210 AIISP 黑光相机

1. Hi3516DV500 Hi3516DV500是一颗面向行业市场推出的高清智能网络摄像头SoC。该芯片最高支持2路sensor输入&#xff0c;支持最高5M30fps的ISP图像处理能力&#xff0c;支持2F WDR、多级降噪、六轴防抖、多光谱融合等多种传统图像增强和处理算法&#xff0c;支持通过AI算法对输…

【React架构 - Fiber构造循环】

我们都知道在React中存在两大循环任务调度循环、Fiber构造循环&#xff0c;本文只要介绍的是其中的FIber构造循环&#xff0c;至于任务调度循环&#xff0c;有兴趣的可以查看写的这篇文章&#xff1a;【React源码 - 调度任务循环EventLoop】 本文主要从三个方面来介绍FIber构造…

Chrome浏览器好用的几个扩展程序

Chrome好用的扩展程序 背景目的介绍JsonHandle例子未完待续。。。。。。 背景 偶然在往上看到Chrome有很多好用的扩展程序&#xff0c;比较好用&#xff0c;因此记录下比较实用的扩展程序。 目的 记录Chrome浏览器好用的插件。 介绍 JsonHandle下载以及无法扩展插件的解决…

九州金榜|家庭教育如何培养孩子独立能力?

在家庭教育中&#xff0c;要怎么样培养孩子的独立能力&#xff1f;很多家长可能会对此比较疑惑。因为现在的孩子从出生家长就会为孩子规划好了一切&#xff0c;孩子只要按部就班的做就好了&#xff0c;所以导致很多孩子没有独立能力&#xff0c;那家长如何培养孩子独立能力呢&a…

VSCode如何设置放大缩小文字的问题

输入栏中输入mouseWheelZoom,选中即可