HDU 2043 密碼
密碼
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 29611 Accepted Submission(s): 11886
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
#include<stdio.h>
#include<string.h>
char str[55];
int main()
{
int n,len,i,a,b,c,d;
scanf("%d",&n);
getchar();
while(n--)
{
a=b=c=d=0;
gets(str);
len=strlen(str);
for(i=0;i<len;i++)
{
if(str[i]>='0'&&str[i]<='9') a++;
if(str[i]>='a'&&str[i]<='z') b++;
if(str[i]>='A'&&str[i]<='Z') c++;
if(str[i]=='~'||str[i]=='!'||str[i]=='@'||str[i]=='#'||str[i]=='$'||str[i]=='%'||str[i]=='^') d++;
}
if(((a>0&&b>0&&c>0)||(a>0&&b>0&&d>0)||(a>0&&c>0&&d>0)||(b>0&&c>0&&d>0))&&(len>=8&&len<16))
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
相關文章
- 密碼 hd 2043密碼
- HDU - 1226 超級密碼密碼
- 希爾密碼(hill密碼)密碼
- 密碼安全:密碼設定要求,密碼爆破辦法,密碼歸類使用,密碼處置方案密碼
- mysql學習之-密碼管理(預設密碼,修改密碼,解決忘記密碼)MySql密碼
- 序列密碼與分組密碼密碼
- U盾密碼密碼重置方法密碼
- 隱藏密碼?顯示密碼?密碼
- 應用密碼學——古典密碼密碼學
- 密碼密碼
- 【密碼】Oracle使用者密碼系列密碼Oracle
- mysql 忘記密碼,mysql修改密碼MySql密碼
- ubuntu root預設密碼(初始密碼)Ubuntu密碼
- 關於密碼檔案,SYS密碼密碼
- 應用密碼學 - 公鑰密碼密碼學
- 應用密碼學——分組密碼密碼學
- 密碼指令碼密碼指令碼
- 《密碼學系列》|| 密碼學中的流密碼是怎麼回事?密碼學
- 費納姆密碼-二進位制密碼密碼
- MYSQL修改密碼和忘記ROOT密碼MySql密碼
- 拆分密碼密碼
- 移位密碼密碼
- 替代密碼密碼
- 密碼抓取密碼
- 密碼學密碼學
- 密碼生成密碼
- 分組密碼(一) — 密碼學複習(四)密碼學
- PDF密碼忘記了,如何找回口令密碼密碼
- 群暉NAS忘記密碼如何重置密碼密碼
- 淺議密碼強度與密碼破解(2)密碼
- PbootCMS忘記密碼後的重置密碼流程boot密碼
- win10密碼忘記怎麼清除密碼 win10重置開機密碼Win10密碼
- 無密碼身份認證,跟密碼說再見!密碼
- 密碼學基礎概念 — 密碼學複習(一)密碼學
- 古典密碼的演化 (一)— 密碼學複習(二)密碼學
- 古典密碼的演化 (二)— 密碼學複習(三)密碼學
- mysql 5.7 初始化密碼或隨機密碼MySql密碼隨機
- 密碼危機:深度學習正在加速密碼破解!密碼深度學習