MC0248 密码判断器(判断强弱密码)

2024-03-27 19:04
文章标签 判断 密码 强弱 mc0248

本文主要是介绍MC0248 密码判断器(判断强弱密码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原题链接<----

islower 小写字母判断
isupper 大写字母判断
isdigit 数字判断

题目:
小码哥在是一位密码领域的初学者,有一天他的老师给他了一串密码,要他判断这个密码是否是强密码,老师和他说强密码就是需要同时达到以下要求:
1.密码长度大于6。
2.密码中同时包括了大小写字母和数字。
3.并且数字和数字之间不能相连。

样例1
输入:
They12wwweqwe

输出:
False

样例 2
输入:
They1wwweqwe

输出:
True

#include <iostream>
#include <algorithm>
#include <cstring>
#include <string.h>
using namespace std;bool cmp(string x)
{return x.size()>6;
}bool cmp1(string x) //判断是否存在小写字母
{for(char it:x){if(islower(it)){return true;}}return false;	
}bool cmp2(string x) //是否存在大写字母
{for(char it:x){if(isupper(it)){return true;}}return false;	
}bool cmp3(string x) //判断是否存在数字
{for(char it:x){if(isdigit(it)){return true;}}return false;	
}bool cmp4(string x) //判断数字之间是否相连
{for(int i=0;i<x.size()-1;i++){if(isdigit(x[i]) && isdigit(x[i+1])){return false;}}	return true;
}int main()
{string str; getline(cin,str);if(cmp(str) && cmp1(str) && cmp2(str) && cmp3(str) &&cmp4(str)){printf("True\n");}else{printf("False\n");}return 0;
}

运行结果:
在这里插入图片描述

AI:

#include <iostream>  
#include <string>  
#include <cctype>  bool isLongEnough(const std::string& password) {  return password.length() > 6;  
}  bool hasLowerCase(const std::string& password) {  for (char c : password) {  if (std::islower(c)) {  return true;  }  }  return false;  
}  bool hasUpperCase(const std::string& password) {  for (char c : password) {  if (std::isupper(c)) {  return true;  }  }  return false;  
}  bool hasDigits(const std::string& password) {  for (char c : password) {  if (std::isdigit(c)) {  return true;  }  }  return false;  
}  bool hasConsecutiveDigits(const std::string& password) {  for (size_t i = 0; i < password.length() - 1; ++i) {  if (std::isdigit(password[i]) && std::isdigit(password[i + 1])) {  return true;  }  }  return false;  
}  bool isStrongPassword(const std::string& password) {  return isLongEnough(password) &&  hasLowerCase(password) &&  hasUpperCase(password) &&  hasDigits(password) &&  !hasConsecutiveDigits(password);  
}  int main() {  std::string password;  std::cout << "请输入密码: ";  std::cin >> password;  if (isStrongPassword(password)) {  std::cout << "这是一个强密码。" << std::endl;  } else {  std::cout << "这不是一个强密码。" << std::endl;  }  return 0;  
}

这篇关于MC0248 密码判断器(判断强弱密码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/853081

相关文章

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

poj 3259 uva 558 Wormholes(bellman最短路负权回路判断)

poj 3259: 题意:John的农场里n块地,m条路连接两块地,w个虫洞,虫洞是一条单向路,不但会把你传送到目的地,而且时间会倒退Ts。 任务是求你会不会在从某块地出发后又回来,看到了离开之前的自己。 判断树中是否存在负权回路就ok了。 bellman代码: #include<stdio.h>const int MaxN = 501;//农场数const int

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

zoj 1721 判断2条线段(完全)相交

给出起点,终点,与一些障碍线段。 求起点到终点的最短路。 枚举2点的距离,然后最短路。 2点可达条件:没有线段与这2点所构成的线段(完全)相交。 const double eps = 1e-8 ;double add(double x , double y){if(fabs(x+y) < eps*(fabs(x) + fabs(y))) return 0 ;return x + y ;

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

Codeforces Round #113 (Div. 2) B 判断多边形是否在凸包内

题目点击打开链接 凸多边形A, 多边形B, 判断B是否严格在A内。  注意AB有重点 。  将A,B上的点合在一起求凸包,如果凸包上的点是B的某个点,则B肯定不在A内。 或者说B上的某点在凸包的边上则也说明B不严格在A里面。 这个处理有个巧妙的方法,只需在求凸包的时候, <=  改成< 也就是说凸包一条边上的所有点都重复点都记录在凸包里面了。 另外不能去重点。 int

【408DS算法题】039进阶-判断图中路径是否存在

Index 题目分析实现总结 题目 对于给定的图G,设计函数实现判断G中是否含有从start结点到stop结点的路径。 分析实现 对于图的路径的存在性判断,有两种做法:(本文的实现均基于邻接矩阵存储方式的图) 1.图的BFS BFS的思路相对比较直观——从起始结点出发进行层次遍历,遍历过程中遇到结点i就表示存在路径start->i,故只需判断每个结点i是否就是stop

linux 判断某个命令是否安装

linux 判断某个命令是否安装 if ! [ -x "$(command -v git)" ]; thenecho 'Error: git is not installed.' >&2exit 1fi