HDU 2043 암호 (문자열 의 존재 성 판단)

비밀 번호
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 45796    Accepted Submission(s): 18423
Problem Description
인터넷 에는 "인터넷 에 자주 떠 다 니 는데 칼 을 안 맞 을 리 가 있 나 ~" 라 는 말 이 돌 고 있다.사실 안심 하고 인터넷 에 접속 하 는 것 도 어렵 지 않 으 니 안전 지식 을 배우 면 된다.우선, 우 리 는 안전 한 비밀 번 호 를 설정 해 야 한다.어떤 비밀번호 가 안전 한 가요?일반적으로 비교적 안전 한 비밀 번 호 는 적어도 다음 두 가지 조건 을 만족 시 켜 야 한다. (1) 비밀 번 호 는 길이 가 8 보다 크 고 16 을 초과 하지 말 아야 한다.(2). 암호 에 있 는 문 자 는 다음 '문자 클래스' 의 네 그룹 중 적어도 세 그룹 에서 나 와 야 합 니 다.이 네 개의 문자 유형 은 각각 1. 대문자: A, B, C... Z 이다.2. 소문 자: a, b, c... z;3. 숫자: 0, 1, 2... 9;4. 특수 기호: ~,!, @, \ #, $,%, ^;비밀 번 호 를 드 리 겠 습 니 다. 당신 의 임 무 는 그것 이 안전 한 비밀번호 인지 아 닌 지 를 판단 하 는 것 입 니 다.
Input
입력 데이터 의 첫 줄 은 하나의 숫자 M 을 포함 하고, 다음 줄 은 M 줄 이 있 으 며, 줄 마다 하나의 암호 (길이 가 최대 50 일 수 있 음) 가 있 으 며, 비밀 번 호 는 위의 네 가지 문자 만 포함 합 니 다.
Output
모든 테스트 인 스 턴 스 에 대해 이 암호 가 안전 한 암호 인지 아 닌 지 를 판단 합 니 다. 그렇지 않 으 면 YES 를 출력 합 니 다. 그렇지 않 으 면 NO 를 출력 합 니 다.
Sample Input

   
   
   
   
3 a1b2c3d4 Linle@ACM ^~^@^@!%

Sample Output

   
   
   
   
NO YES NO

Author
linle
Source
2005 실험 반 단기 시험
문제 풀이: 문자열 이 존재 하 는 지 판단 하 세 요.
AC 코드:
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdlib>
#include<iomanip>
#include<algorithm>
#include<time.h>
typedef long long LL;
using namespace std;

int main() 
{
	char a[100];
    int sum,i,n,b,c,d,e;
    cin>>n;
    getchar();
    while(n--)
         {
          b=0,c=0,d=0,e=0;
            gets(a);
            if(strlen(a)>=8&&strlen(a)<=16)
            {
                  for(i=0;i<strlen(a);++i)
                  {
         if(a[i]>='0'&&a[i]<='9')
                     b=1;
                     if(a[i]>='a'&&a[i]<='z')
                     c=1;
                     if(a[i]>='A'&&a[i]<='Z')
                     d=1;
                     if(a[i]=='~'||a[i]=='!'||a[i]=='@'||a[i]=='#'||a[i]=='$'||a[i]=='%'||a[i]=='^')
                     e=1;
                }
                sum=b+c+d+e;
                if(sum>=3)
                cout<<"YES"<<endl;
                else
                cout<<"NO"<<endl;
            }
            else
            cout<<"NO"<<endl;
         }    

	return 0;
} 

좋은 웹페이지 즐겨찾기