シーザーのパスワード
🔗 質問リンク
https://programmers.co.kr/learn/courses/30/lessons/12926
問題の説明
1つの暗号化方法は、1つの文の各アルファベットを一定の距離で伸ばし、別のアルファベットに変換することです.
例えば、「AB」は1で「BC」、3で「DE」を表す.「z」が1に等しいと「a」になります.
文字列sと距離nを入力し、sがnの暗号文の関数を生成し、ソリューションを完了します.
⚠▼制限
いくら押してもスペースは空いています.
sは、小文字、大文字、スペースのみから構成されます.
sの長さは8000以下です.
nは1以上,25以下の自然数である.
💡 プール(言語:JavaとPython)
Java
class Solution {
public String solution(String s, int n) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
int charNum = ch + n;
if (Character.isUpperCase(ch))
sb.append((char) ((charNum > 90) ? (charNum % 90 - 1) + 'A' : charNum));
else if (Character.isLowerCase(ch))
sb.append((char) ((charNum > 122) ? (charNum % 122 - 1) + 'a' : charNum));
else
sb.append(ch);
}
return sb.toString();
}
}
Python
def solution(s, n):
up_alpha = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
'W', 'X', 'Y', 'Z']
low_alpha = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z']
answer = ''
for alpha in s:
if alpha.isupper():
for i in range(len(up_alpha)):
if up_alpha[i] == alpha:
answer += up_alpha[(i+n) % len(up_alpha)]
elif alpha.islower():
for i in range(len(low_alpha)):
if low_alpha[i] == alpha:
answer += low_alpha[(i+n) % len(low_alpha)]
else:
answer += alpha
return answer
Reference
この問題について(シーザーのパスワード), 我々は、より多くの情報をここで見つけました https://velog.io/@shiningcastle/시저암호テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol