通過 : 80 人 /96 次 | 送出 : 78 人 /211 次 | 通過比率 : 103%
公開 測資點 1 (100%): 1.0s, 512 MB | 評分方式: Tolerant
最近更新 : 2013-02-19 17:02
公開 測資點 1 (100%): 1.0s, 512 MB | 評分方式: Tolerant
最近更新 : 2013-02-19 17:02
內容 :
你在一家成長中的電子商務網站工作,而它也成了竊賊覬覦的對象。竊賊以猜測密碼的方式來存取顧客的帳號,這常常是輕而易舉的 (如 "secret", "password", 和 "1234")。如果你的顧客使用較好的密碼,你的公司就可以省點力氣來處理盜刷的問題。
你被賦與的任務為設計一個密碼分析器以告知顧客他們所選的密碼的強度。一個「強」密碼以增加長度或混用字母、數字及符號來增加猜測的難度。在這項工作中,一個「強」 (strong) 密碼擁有以下所有特性:
你被賦與的任務為設計一個密碼分析器以告知顧客他們所選的密碼的強度。一個「強」密碼以增加長度或混用字母、數字及符號來增加猜測的難度。在這項工作中,一個「強」 (strong) 密碼擁有以下所有特性:
- 長度至少 8 個字元 (如:"spookyfish")
- 同時有大寫及小寫字母 (如:"sPookyFISH")
- 同時有字母及至少一個數字或符號 (如:"sPookyFiSH3" 或 "$PookyFI3H")
輸入說明 :
每筆測資一行,其中含有一個密碼,長度最大為 30 字元。密碼中沒有空白。
輸出說明 :
依據上述的特性,輸出所輸入密碼的強度。
範例輸入 :
lizard aardvark Aardvark Aardvark77
範例輸出 :
This password is WEAK This password is ACCEPTABLE This password is GOOD This password is STRONG
提示 :
出處 :
(管理:snail)
--------------------------------------------------------------------------------------------------#include<stdio.h>
#include<string.h>
char s[100];
bool one(){
if(strlen(s)>=8) return 1;
return 0;
}
bool two(){
int A=0,B=0,i;
for(i=0;s[i];i++){
if(s[i]<='z' && s[i]>='a')
A=1;
if(s[i]<='Z' && s[i]>='A')
B=1;
}
if(A+B==2) return 1;
return 0;
}
bool three(){
int A=0,B=0,C=0,i;
for(i=0;s[i];i++){
if(s[i]<='z' && s[i]>='a')
A=1;
else if(s[i]<='Z' && s[i]>='A')
A=1;
else if(s[i]<='9' && s[i]>='0')
B=1;
else C=1;
}
if(A+B+C>=2) return 1;
return 0;
}
int main(){
int n,m,i,ans;
while(scanf("%s",s)!=EOF){
ans=one()+two()+three();
printf("This password is ");
if(ans==0) puts("WEAK");
if(ans==1) puts("ACCEPTABLE");
if(ans==2) puts("GOOD");
if(ans==3) puts("STRONG");
}
}
沒有留言:
張貼留言