HJ20 密码验证合格程序

简介: HJ20 密码验证合格程序

题目

题目连接

解题

方法一:字符串处理

#include <iostream>
#include <string>
using namespace std;
//字串重复出现次数
int count(string& s,string& t){
    int m=s.size(),n=t.size();
    int res=0;
    for(int i=0;i<m;i++){
        int u=i,v=0;
        while(u<m&&v<n){
            if(s[u]!=t[v]) break;
            u++;
            v++;
        }
        if(v==n) res++;
    }
    return res;
}
bool isValid(string& s){
    int n=s.size();
    if(n<8) return false;//长度小于8,NG
    int f1=0,f2=0,f3=0,f4=0;
    for(char c:s){
        if(c>='A'&&c<='Z') f1=1;
        else if(c>='a'&&c<='z') f2=1;
        else if(c>='0'&&c<='9') f3=1;
        else f4=1;
    }
    if(f1+f2+f3+f4<3) return false; //字符包含3种以下  NG
    for(int i=0;i<n-3;i++){
        string tmp=s.substr(i,3);
        if(count(s,tmp)>=2) return false;//字串重复出现 NG
    }
    return true;//OK
}
int main()
{
    string s;
    while(getline(cin,s)){
        bool res=isValid(s);
        if(res) cout<<"OK"<<endl;
        else cout<<"NG"<<endl;
    }
}
相关文章
|
弹性计算
2024年阿里云免费云服务器及学生云服务器申请教程参考
2024年阿里云继续推出免费学生云服务器与免费试用云服务器,其中学生云服务器最长可免费7个月(1个月首次领用+6个月免费续领),免费试用云服务器分为个人免费云服务器和企业免费云服务器,最长免费试用时长是3个月。下面小编来介绍一下阿里云免费云服务器及学生云服务器的申请教程。
53375 54
2024年阿里云免费云服务器及学生云服务器申请教程参考
|
存储 开发框架 .NET
解锁SqlSugar新境界:利用Serialize.Linq实现Lambda表达式灵活序列化与反序列化,赋能动态数据查询新高度!
【8月更文挑战第3天】随着软件开发复杂度提升,数据查询的灵活性变得至关重要。SqlSugar作为一款轻量级、高性能的.NET ORM框架,简化了数据库操作。但在需要跨服务共享查询逻辑时,直接传递Lambda表达式不可行。这时,Serialize.Linq库大显身手,能将Linq表达式序列化为字符串,实现在不同服务间传输查询逻辑。结合使用SqlSugar和Serialize.Linq,不仅能够保持代码清晰,还能实现复杂的动态查询逻辑,极大地增强了应用程序的灵活性和可扩展性。
397 2
|
12月前
|
存储 搜索推荐 大数据
大数据在医疗领域的应用
大数据在医疗领域有广泛应用,包括电子病历的数字化管理和共享,提升医疗服务效率与协同性;通过数据分析支持医疗决策,制定个性化治疗方案;预测疾病风险并提供预防措施;在精准医疗中深度分析患者基因组信息,实现高效治疗;在药物研发中,加速疗效和副作用发现,提高临床试验效率。此外,在金融领域,大数据的“4V”特性助力业务决策前瞻性,被广泛应用于银行、证券和保险的风险评估、市场分析及个性化服务中,提升运营效率和客户满意度。
1291 6
|
监控 安全 数据挖掘
Python自动化交易
【8月更文挑战第7天】随着科技发展,自动化交易成为高效智能的投资方式。Python因其实用性和灵活性,在此领域大放异彩。本文介绍使用Python进行自动化交易的流程,包括获取市场数据、制定交易策略、执行交易、风险管理、监控与优化、实时监控及通知、心态管理、安全与隐私保护以及持续学习与优化等方面,并提供了具体的代码示例。通过这些步骤,读者可以构建自己的自动化交易系统,实现稳健的投资回报。
|
11月前
|
SQL Java 数据库连接
Pagehelper超级好用的分页插件
Pagehelper超级好用的分页插件
1934 0
|
关系型数据库 MySQL 数据库
navicat 查看,设计并导出数据库 ER图
navicat 查看,设计并导出数据库 ER图
2190 5
|
设计模式 Go
|
负载均衡 Ubuntu Java
nacos常见问题之升级到2.1.0重启后端服务如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
440 1
华为机试HJ106:字符逆序
华为机试HJ106:字符逆序
194 1