1 条题解

  • 0
    @ 2026-10-18 18:33:53

    G3021 [GESP202512 三级] 密码强度 题解

    知识点:字符串、字符分类、规则校验。

    解题思路

    扫描字符串标记是否含大写字母、是否含数字,再合并长度至少8的条件,满足输出Y,否则N。

    为什么正确

    三个条件分别对应题目强密码要求,全部成立才符合定义。

    易错点

    输出Y/N,不是Yes/No;不额外要求小写或特殊字符。

    复杂度

    时间O(总字符数),空间O(单串长度)。

    参考代码(C++17)

    #include<bits/stdc++.h>
    
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int t;
        cin>>t;
        while(t--) {
            string s;
            cin>>s;
            bool up=false,dig=false;
            for(char c:s) {
                up|=c>='A'&&c<='Z';
                dig|=c>='0'&&c<='9';
            }
            cout<<(s.size()>=8&&up&&dig?"Y":"N")<<"\n";
        }
    }
    

    说明

    本题解为配套教学整理,非官方题解。复杂度按本页参考实现计算,题库使用6个自行生成的测试点。

    • 1

    信息

    ID
    689
    时间
    1000ms
    内存
    512MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者