結果
| 問題 | No.2201 p@$$w0rd |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-02-06 14:33:25 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 33 ms / 2,000 ms |
| コード長 | 1,177 bytes |
| コンパイル時間 | 75 ms |
| コンパイル使用メモリ | 12,928 KB |
| 実行使用メモリ | 10,752 KB |
| 最終ジャッジ日時 | 2024-07-04 18:54:56 |
| 合計ジャッジ時間 | 1,726 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 24 |
ソースコード
from string import ascii_lowercase
import re
def is_registered(pass_: str) -> bool:
if all((letter not in pass_) for letter in ascii_lowercase):
return False
pass_ = re.sub("[a-z]", "", pass_)
if all((str(num) not in pass_) for num in range(10)):
return False
pass_ = re.sub("[0-9]", "", pass_)
if pass_:
return True
return False
def main():
S = input()
replaced = set((S, ))
for letter_idx in range(len(S)):
replaced_tmp = set()
for word in replaced:
if word[letter_idx] == "l":
replaced_tmp.add(word[:letter_idx] + "1" + word[letter_idx+1:])
elif word[letter_idx] == "o":
replaced_tmp.add(word[:letter_idx] + "0" + word[letter_idx+1:])
elif word[letter_idx] == "a":
replaced_tmp.add(word[:letter_idx] + "@" + word[letter_idx+1:])
elif word[letter_idx] == "s":
replaced_tmp.add(word[:letter_idx] + "$" + word[letter_idx+1:])
replaced.update(replaced_tmp)
replaced = filter(is_registered, replaced)
print(len(list(replaced)))
if __name__ == "__main__":
main()