[PyLv 1]シーザーパスワード
問題の説明
1つの暗号化方法は、1つの文の各アルファベットを一定の距離で伸ばし、別のアルファベットに変換することです.例えば、「AB」は1で「BC」、3で「DE」を表す.「z」が1に等しいと「a」になります.文字列sと距離nを入力し、sがnの暗号文の関数を生成し、ソリューションを完了します.
せいげんじょうけん
I/O例
方法
久しぶりに時間がかかりました
I/Oの例で問題が解決しました.
採点段階で合格しなかった.
問題は何ですか.長い間悩んでいたが、次のような状況に問題があったようだ.
大文字Wはアスキーコードで87です.
ここではnを24と仮定し,合計111とする.
大文字ZはAskyコード、**はAskyコード、90です.
ダミーが111の場合、90を超えます.
このとき再びAから21(111-90)番目の位置で
アルファベットを表示する必要がありますが、その前にコードで実現されたアルゴリズムは
このような問題は解決できない.
問題を解決するには、最初から書き直すべきだと思います.
書き直しました.
😣😥 2時間半の苦労を経て、やっと問題を解くことができました・・・
=============================================================
def solution(s, n):
str = list(s)
for i in range(len(str)):
if str[i].isupper():
str[i] = chr((ord(str[i]) - ord('A')+n)%26 + ord('A'))
elif str[i].islower() :
str[i] = chr((ord(str[i])- ord('a')+n)%26 + ord('a'))
return ''.join(str)
Reference
この問題について([PyLv 1]シーザーパスワード), 我々は、より多くの情報をここで見つけました https://velog.io/@ysh/PyLv1-시저암호テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol