[Baekjun]4659パスワード発音python
9437 ワード
パスワードの朗読
質問する
良いパスワードを作るのは難しい.多くのユーザーは、友達のように発音がよく、記憶しやすいパスワードを望んでいますが、これらのパスワードはセキュリティの問題が発生します.xvtpzyoのようなパスワードをランダムにユーザーに提供するサイトもありますが、ユーザーは覚えにくく、メモに書いてパソコンに貼ることもあります.最も理想的な解決策は、適切に覚えやすく、アカウントを安全に維持できる「発音可能」なパスワードを作成することです.
会社FnordComはそのようなパスワードジェネレータの作成を計画しています.同社の品質管理部門の従業員として、生成されたパスワードの品質をテストし、評価する必要があります.高品質パスワードの条件は以下の通りです.
入力
入力は、複数のテスト・インスタンスから構成されます.
各テスト・インスタンスは1行で構成され、各行にテストするパスワードがあります.
最後のテストケースはendであり、passwordは20文字以上の文字列である.また、パスワードには大文字は含まれていません.
しゅつりょく
各テストケースの品質は、サンプル出力の形式で評価されます.
ソリューション
#모음 받아오기
lst = ['a','e','i','o','u']
#모음이 연속되면 안되지만 예외경우 처리
accept = ['ee','oo']
while True :
x=y=0
password = input()
#들어온 값이 end면 그대로 리턴
if password == 'end' :
break
#카운트
cnt = 0
#모음개수세기
for i in lst :
if i in password :
cnt +=1
#모음이 없으면 부적합
if cnt <1 :
print(f'<{password}> is not acceptable.')
continue
#모음만 연속 3개거나 자음만 연속 3개인 경우 체크
for i in range(len(password)-2) :
if password[i] in lst and password[i+1] in lst and password[i+2] in lst :
x = 1
elif not(password[i] in lst) and not(password[i+1]in lst) and not(password[i+2] in lst) :
x = 1
if x == 1 :
print(f'<{password}> is not acceptable.')
continue
#같은 글이 연속 두개인지 체크 하지만 'e'나 'o'면 컨티뉴
for i in range(len(password)-1) :
if password[i]==password[i+1] :
if password[i] == 'e' or password[i] == 'o' :
continue
else :
y = 1
if y == 1 :
print(f'<{password}> is not acceptable.')
continue
#예외 케이스를 통과하면 적합
print(f'<{password}> is acceptable.')
Reference
この問題について([Baekjun]4659パスワード発音python), 我々は、より多くの情報をここで見つけました https://velog.io/@holawan/백준-4659비밀번호-발음하기-pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol