【牛客】HJ87 密码强度等级 CM62 井字棋

news2024/9/22 10:27:34

题目一:密码强度等级

题目链接:密码强度等级_牛客题霸_牛客网 (nowcoder.com)

本题主要考察C语言中逻辑分支语句,基本语句以及对各种特殊字符 ,ASCII值以及条件表达中的逻辑运算符关系运算符各自功能的理解,以及基本使用,根据不同的条件,进入不同的分支,统计求和

解题思路:

1、先统计大小写字母,数字,以及特殊字符的个数

2、再对题目给的限定条件累加求和

代码实现:

#include<iostream>
using namespace std;

int string_count( const string& str)
{
        int digit=0,symbol=0;
        int lower=0,upper=0,character=0;
        int sum=0;
        for(auto ch:str)
        {
             
            if(ch>='a'&&ch<='z')
            {
              lower++;
              character++;
            }
            else if(ch>='A'&&ch<='Z')
            {
                upper++;
                character++;
            }
            else if(ch>='0'&&ch<='9')
            digit++;

            if((ch>=0x21&&ch<=0x2F)||
            (ch>=0x3A&&ch<=0x40)||
            (ch>=0x5B&&ch<=0x60)||
            (ch>=0x7B&&ch<=0x7E))
            symbol++;
        }

            //str字符长度分数
                if(str.size()>=8)
                sum+=25;
                else if (str.size()>=5&&str.size()<=7)
                sum+=10;
                else if (str.size()<=4)
                sum+=5;

        //计算字母分数
           if(lower>0&&upper>0)
           sum+=20;
           else if (lower==character||upper==character)
           sum+=10;

            //计算数字分数
                if(digit>1)
                sum+=20;
                else if (digit==1)
                    sum+=10;

            //计算字符分数
                if(symbol>1)
                sum+=25;
                else if (symbol==1)
                sum+=10;
            
            if(lower>0&&upper>0&&digit>0&&symbol>0)
            sum+=5;
            else if((lower>0||upper>0)&&digit>0&&symbol>0)
            sum+=3;
            else if((lower>0||upper>0)&&digit>0&&symbol==0)
                sum+=2;

            return sum;
}
int main()
{
    string str;
    while(cin>>str)
    {
        int score=string_count(str);
        if(score>=90){
            cout<<"VERY_SECURE"<<endl;
        }
        else if(score>=80){
            cout<<"SECURE"<<endl;
        }
        else if(score>=70) {
            cout<<"VERY_STRONG"<<endl;
        }
        else if(score>=60) {
            cout<<"STRONG"<<endl;
        }
        else if(score>=50) {
            cout<<"AVERAGE"<<endl;
        }
        else if(score>=25) {
            cout<<"WEAK"<<endl;
        }
        else if(score>=0) {
            cout<<"VERY_WEAK"<<endl;
        }
    }
}

题目二:井字棋

题目链接:井字棋_牛客题霸_牛客网 (nowcoder.com)

题目描述:

解题思路:

玩家棋子为1

整个一行相加结果为列数 就获胜了

整个一列相加结果为行数 就获胜了

正斜 board[row][row]

副斜board[row][col-1-i]

 代码实现:

class Board {
public:
    bool checkWon(vector<vector<int> > board) {
        // write code here
        int row=board.size();
        int col=board[0].size();

        //行连成排
        for(int i=0;i<row;i++)
        {
            int sum=0;
            for(int j=0;j<col;j++)
            {
                sum+=board[i][j];
            }
            if(sum==col) return true;
        }
        //列连成排
        for(int i=0;i<col;i++)
        {
            int sum=0;
            for(int j=0;j<row;j++)
            {
                sum+=board[j][i];
            }
            if(sum==row) return true;
        }
        //正斜成排
        int sum=0;
        for(int i=0;i<row;i++)
        {
            sum+=board[i][i];
        }
        if(sum==row)  return true;
        //副斜成排
        sum=0;
        for(int i=0;i<row;i++)
        {
            sum+=board[i][col-1-i];
        }
        if(sum==row) return true;

        return false;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1502985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【linuxC语言】dup、dup2函数

文章目录 前言一、dup函数二、dup2函数三、将标准输出重定向到文件总结 前言 在Linux环境下&#xff0c;dup、dup2以及原子操作都是用于文件描述符管理和处理的重要工具。这些功能提供了对文件描述符进行复制和原子操作的能力&#xff0c;使得在多线程或多进程环境中更加安全和…

qt一个项目有且只有有一个maindow,其他小窗口用QWidget,QDialog是带有yes和no的QWidget

QMaindow QWidget QDialog区别很大 我想要在生成一个小窗口&#xff0c;结果选择基类为maindow&#xff0c;应该是QWidget 然后就出现奇奇怪怪的问题 QMaindow和QWidget不能乱选择&#xff0c;而且各自QPaintEvent也有很多区别 以下就是错误&#xff1a; 我继承maindow的基类…

C#,排列组合的堆生成法(Heap’s Algorithm for generating permutations)算法与源代码

1 排列组合的堆生成法 堆生成算法用于生成n个对象的所有组合。其思想是通过选择一对要交换的元素&#xff0c;在不干扰其他n-2元素的情况下&#xff0c;从先前的组合生成每个组合。 下面是生成n个给定数的所有组合的示例。 示例&#xff1a; 输入&#xff1a;1 2 3 输出&a…

【Qt】四种绘图设备详细使用

绘图设备有4个: **绘图设备是指继承QPainterDevice的子类————**QPixmap QImage QPicture QBitmap(黑白图片) QBitmap——父类QPixmapQPixmap图片类&#xff0c;主要用来显示&#xff0c;它针对于显示器显示做了特殊优化&#xff0c;依赖于平台的&#xff0c;只能在主线程…

python编程从入门到实践

python编程从入门到实践 if语句1.条件测试&#xff1a;2.更多的条件测试&#xff1a;3.外星人颜色#1&#xff1a;4. 外星人颜色#2&#xff1a;5. 外星人颜色#3&#xff1a;6. 人生的不同阶段&#xff1a;7. 喜欢的水果&#xff1a;8. 以特殊方式跟管理员打招呼&#xff1a;9. 处…

程序员失业,被迫开启 PlanB——成为自由职业/独立开发者的第 0 天

程序员失业&#xff0c;被迫开启 PlanB——成为自由职业/独立开发者的第 0 天 今天在逛V2EX的时候看到的一个帖子&#xff0c;程序员中年被裁&#xff0c;被迫开启独立开发这条路。 原贴如下&#xff1a; lastday, 失业啦 公司年前通知我合同到期不续签&#xff0c;今天是我…

React改变数据【案例】

State传统方式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>React Demo</title> <!--…

专业的项目管理系统,企智汇!帮助企业提高项目管理效率!

一款专业的项目管理系统&#xff0c;是企智汇项目管理系统&#xff01;企智汇专业做项目管理系统10年&#xff0c;经过10年的打磨&#xff0c;有成熟的项目管理系统功能&#xff0c;它面向各个企业的项目团队&#xff0c;提供数字化、智能化、信息化的项目管理功能&#xff0c;…

【亲测有效】解决三月八号ChatGPT 发消息无响应!

背景 今天忽然发现 ChatGPT 无法发送消息&#xff0c;能查看历史对话&#xff0c;但是无法发送消息。 可能的原因 出现这个问题的各位&#xff0c;应该都是点击登录后顶部弹窗邀请 [加入多语言 alapha 测试] 了&#xff0c;并且语言选择了中文&#xff0c;抓包看到 ab.chatg…

工作合同坑

1-不要给证件原件&#xff0c;给复印件&#xff0c;并写明用处 。 2-正式入职才填写详细的个人信息 3-入职的各种相关费用需要谨慎&#xff0c;注意是否合法正规 4-招转培是个坑 5-无薪试岗&#xff0c;滚 6-试用期工资不能低于转正之后的80%&#xff0c;一定要有纸质的正式工资…

LayerNorm的图是不是画错了

这是网上一张很流行的说明几个 Normalization 区别的图 这图出自Kaiming的文章 Group Norm 但是他这个 Layer Norm 的图是不是画错了? 我大四写毕设的时候就想问&#x1f923;&#x1f923;&#x1f923; 这都几年过去了 我觉得图应该是这样画的&#xff0c;相同颜色的区域…

使用docker-compose编排ruoyi项目

目录 一、开始部署 1.拉取ruoyi代码 2.拉取node镜像 3.拉取maven镜像 4.在/root/ruoyi/java下写一个Dockerfile用于后端Java环境 5.拉取MySQL&#xff0c;Redis&#xff0c;Nginx镜像 6.在/root/java目录下写一个nginx.conf 7.在/root/ruoyi目录下写docker-compose.yml文…

计算机网络——计算机网络的性能

计算机网络——计算机网络的性能 速率带宽吞吐量时延时延宽带积往返时间RTT利用率信道利用率网络利用率 我们今天来看看计算机网络的性能。 速率 速率这个很简单&#xff0c;就是数据的传送速率&#xff0c;也称为数据率&#xff0c;或者比特率&#xff0c;单位为bit/s&#…

Spring boot 请求参数包含[]等特殊字符,导致无法接收问题

前言对字符进行转义修改tomcat 配置 前言 Spring boot 请求参数包含[]等特殊字符&#xff0c;导致无法接收问题 对字符进行转义 中括号[] 必须用%5B%5D转义&#xff0c;否则tomcat无法解析&#xff0c;回抛出不合法字符异常&#xff0c;不会进入控制器 修改tomcat 配置 p…

JavaEE企业开发新技术

目录 2.1 Class对象基本概念 1、概念 2.2 Class对象的获取方式 2.3基本数据类型的Class对象 1、概念 2.4 反射的基本概念 概念 2.5 Class对象的基本使用-1 2.6 Class对象的基本使用-2 newInstance()和new()区别&#xff1a; 2.1 Class对象基本概念 1、概念 反射的…

【字符串】【贪心】【 树状数组】2193. 得到回文串的最少操作次数

作者推荐 视频算法专题 本文涉及知识点 字符串 贪心 树状数组 分类讨论 LeetCode2193. 得到回文串的最少操作次数 给你一个只包含小写英文字母的字符串 s 。 每一次 操作 &#xff0c;你可以选择 s 中两个 相邻 的字符&#xff0c;并将它们交换。 请你返回将 s 变成回文串…

Qt5.14.2揭秘Qt与SSL/TLS的完美邂逅:打造坚不可摧的网络安全防线

引言&#xff1a; 在数字化时代&#xff0c;数据安全是每个开发者和用户都不可忽视的问题。Qt&#xff0c;作为一个强大的跨平台开发框架&#xff0c;为我们提供了丰富的网络功能&#xff0c;其中就包括了对SSL/TLS加密通信的支持。本文将带你深入了解如何在Qt中实现SSL证书认证…

【力扣白嫖日记】1174.即时食物配送II

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1174.即时食物配送II 表&#xff1a;Person 列名类型delivery_idintcustomer_idintorder_datedatecustomer_…

C# winform 重启电脑

一、重启电脑指令 windows7系统的启动文件夹为“开始菜单”——“所有程序”里面就有“启动”文件夹&#xff0c;其位置是 “C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup” 如果没有&#xff0c;则需要将其中的"administrator…

PHP storm连接阿里云服务器

阿里云开放端口 &#xff1a;1024/65535 然后宝塔 FTP 设置账户密码 和开放的文件目录 SFTP &#xff1a;账号root 密码&#xff1a;阿里云设置的密码