当前位置: 首页 > news >正文

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;  
}

相关文章:

  • C/C++ ② —— C++11智能指针
  • 『Apisix进阶篇』动态负载均衡:APISIX的实战演练与策略应用
  • MySQL面试题--MySQL内部技术架构
  • SVM回归预测
  • AWS EC2设置root登录
  • centos 安装wget
  • npm常用命令详解
  • GEE:将分类特征和标签提取到样本点,并以(csv/shp格式)下载到本地
  • Rancher(v2.6.3)——Rancher部署Mysql(单机版)
  • Java解决幸运数字
  • 专项测试之「 性能测试」总结
  • 连组里服务器(自用)
  • 【Java程序设计】【C00344】基于Springboot的船舶维保管理系统(有论文)
  • DOcker in Docker 原理与实战代码详解
  • 【目标检测】YOLOv4 网络结构
  • Android Studio:GIT提交项目到远程仓库
  • httpie使用详解
  • Java精华积累:初学者都应该搞懂的问题
  • mysql innodb 索引使用指南
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • nodejs:开发并发布一个nodejs包
  • node学习系列之简单文件上传
  • PAT A1092
  • php面试题 汇集2
  • SpringCloud集成分布式事务LCN (一)
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Vue2.0 实现互斥
  • 分类模型——Logistics Regression
  • 回顾2016
  • 看域名解析域名安全对SEO的影响
  • 悄悄地说一个bug
  • 入手阿里云新服务器的部署NODE
  • 探索 JS 中的模块化
  • 学习HTTP相关知识笔记
  • 硬币翻转问题,区间操作
  • 阿里云ACE认证之理解CDN技术
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (12)Linux 常见的三种进程状态
  • (C语言)fgets与fputs函数详解
  • (Java)【深基9.例1】选举学生会
  • (补)B+树一些思想
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)平衡树
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .a文件和.so文件
  • .bat批处理(一):@echo off
  • .NET Core 和 .NET Framework 中的 MEF2