网络上各类交易活动越来越普及,为了能够安安心心地上网,经常需要设置一个安全的密码。

一般来说,一个比较安全的密码至少应该满足下面两个条件:

  1. 密码长度大于等于 8。
  2. 密码中的字符应该来自下面“字符类别”中四组中的至少三组。

这四个字符类别分别为:

  1. 大写字母:A, B, C... Z;
  2. 小写字母:a, b, c... z;
  3. 数字:0, 1, 2... 9;
  4. 特殊符号:~, !, @, #, $,

给你一个密码,你的任务就是判断它是不是一个安全的密码。

输入格式

输入包含多组测试数据。

每组数据占一行,包含一个字符串表示密码。

输出格式

每组数据输出一行结果,如果是安全密码则输出 YES,否则输出 NO

数据范围

输入字符串长度不超过 50 且仅包含题目所述四类字符。

输入最多包含 100 组数据。

输入样例

a1b2c3d4
Linle@ACM
^~^@^@

输出样例

NO
YES
NO

题目分析

暴力即可

代码实现

#include <iostream>
using namespace std;

bool daxie, xiaoxie, suzi, tesu;
string s;
int main () {
    ios::sync_with_stdio(0);
    while(cin >> s) {
        if (s.length() < 8) cout << "NO\n";
        else {
            bool flag = 0;
            daxie = xiaoxie = suzi = tesu = 0;
            for (auto& i : s) {
                if (i >= 'a' && i <= 'z') xiaoxie = 1;
                if (i >= 'A' && i <= 'Z') daxie = 1;
                if (i - '0' >= 0 && i - '0' <= 9) suzi = 1;
                if (i == '~' || i == '!' || i == '@' || i == '#' || i == '$' || i == '
                if (xiaoxie + daxie + suzi + tesu >= 3) {
                    flag = 1;
                    break;
                }
            }
            cout << (flag ? "YES\n" : "NO\n");
        }
    }
    return 0;
} 
分类: Thought

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注

友情链接:Ctips' blog, Colza’s blog

站点状态:Status