C语言网1162

题目链接:
https://www.dotcpp.com/oj/problem1162.html

#include <iostream>
#include <cstring>
using namespace std;
int main(){
 char password[50];
 int count;
 cin>>count;
 while(count){
  int flag1=0;//大写字母 
  int flag2=0;//小写字母 
  int flag3=0;//数字 
  int flag4=0;//特殊符号 
  int i=0;
  cin>>password;
  int length=strlen(password);
  if(length<8||length>16){
   cout<<"NO"<<endl;
  }
  else{
   for(int i=0;i<length;i++){
    if(password[i]>='A'&&password[i]<='Z'&&flag1==0){
     flag1=1; 
    }
    if(password[i]>='a'||password[i]<='z'&&flag2==0){
     flag2=1;
    }
    if(password[i]>='0'&&password[i]<='9'&&flag3==0){
     flag3=1;
    }
    if((password[i]=='~'||password[i]=='!'||password[i]=='@'||password[i]=='#'||password[i]=='$'||password[i]=='%'||password[i]=='^')&&flag4==0){
     flag4=1;
    }
   }
   if(flag1+flag2+flag3+flag4>=3){
    cout<<"YES"<<endl;
   }
   else cout<<"NO"<<endl;
  }
  count--;
 }
 return 0;
} 

核心算法就是4个条件满足3个,就设定4个flag=0,然后相加之后等于3就是符合规范,不等于就是不符合
非常简单,一次AC

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读