题目一:密码强度等级
题目链接:密码强度等级_牛客题霸_牛客网 (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 hereint 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;}
};