[Programmers]-パスワードの起動
10928 ワード
1. Problem 📃
https://programmers.co.kr/learn/courses/30/lessons/12926
次の問題は、文字列と数値が与えられたときに、文字列に入力された数値から離れた文字を出力することです.
2. Logic 👨🏫
ASKIDコードを用いて範囲分割を行った.
3. Code 💻
1.私が解いたパスワード
def solution(s, n):
answer = ''
for i in range(len(s)):
num = ord(s[i]) + n
if s[i] == ' ':
answer += ' '
elif ('a' <= s[i] and s[i] <= 'z') and num < 97:
answer += chr(num + 26)
elif ('a' <= s[i] and s[i] <= 'z') and num > 122:
answer += chr(num - 26)
elif ('A' <= s[i] and s[i] <= 'Z') and num < 65:
answer += chr(num + 26)
elif ('A' <= s[i] and s[i] <= 'Z') and num > 90:
answer += chr(num - 26)
else:
answer += chr(num)
return answer
2.他人が解いたパスワード
def caesar(s, n):
s = list(s)
for i in range(len(s)):
if s[i].isupper():
s[i]=chr((ord(s[i])-ord('A')+ n)%26+ord('A'))
elif s[i].islower():
s[i]=chr((ord(s[i])-ord('a')+ n)%26+ord('a'))
return "".join(s)
4. Feedback 📚
1. chr()
Askyコードを文字列の関数に変換します.>>> chr(65)
A
>>> chr(90)
Z
2. ord()
文字列をAskyコードの関数に変換します.>>> ord('a')
97
>>> ord('z')
122
他の人が解いているコードを見ていると、すでに存在しているライブラリで解いている様子が多く見られますが、この問題に触れて、私もこれからも頑張って解いていきたいと思っています.😊
Reference
この問題について([Programmers]-パスワードの起動), 我々は、より多くの情報をここで見つけました
https://velog.io/@odh0112/Programmers-시저-암호
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
ASKIDコードを用いて範囲分割を行った.
3. Code 💻
1.私が解いたパスワード
def solution(s, n):
answer = ''
for i in range(len(s)):
num = ord(s[i]) + n
if s[i] == ' ':
answer += ' '
elif ('a' <= s[i] and s[i] <= 'z') and num < 97:
answer += chr(num + 26)
elif ('a' <= s[i] and s[i] <= 'z') and num > 122:
answer += chr(num - 26)
elif ('A' <= s[i] and s[i] <= 'Z') and num < 65:
answer += chr(num + 26)
elif ('A' <= s[i] and s[i] <= 'Z') and num > 90:
answer += chr(num - 26)
else:
answer += chr(num)
return answer
2.他人が解いたパスワード
def caesar(s, n):
s = list(s)
for i in range(len(s)):
if s[i].isupper():
s[i]=chr((ord(s[i])-ord('A')+ n)%26+ord('A'))
elif s[i].islower():
s[i]=chr((ord(s[i])-ord('a')+ n)%26+ord('a'))
return "".join(s)
4. Feedback 📚
1. chr()
Askyコードを文字列の関数に変換します.>>> chr(65)
A
>>> chr(90)
Z
2. ord()
文字列をAskyコードの関数に変換します.>>> ord('a')
97
>>> ord('z')
122
他の人が解いているコードを見ていると、すでに存在しているライブラリで解いている様子が多く見られますが、この問題に触れて、私もこれからも頑張って解いていきたいと思っています.😊
Reference
この問題について([Programmers]-パスワードの起動), 我々は、より多くの情報をここで見つけました
https://velog.io/@odh0112/Programmers-시저-암호
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def solution(s, n):
answer = ''
for i in range(len(s)):
num = ord(s[i]) + n
if s[i] == ' ':
answer += ' '
elif ('a' <= s[i] and s[i] <= 'z') and num < 97:
answer += chr(num + 26)
elif ('a' <= s[i] and s[i] <= 'z') and num > 122:
answer += chr(num - 26)
elif ('A' <= s[i] and s[i] <= 'Z') and num < 65:
answer += chr(num + 26)
elif ('A' <= s[i] and s[i] <= 'Z') and num > 90:
answer += chr(num - 26)
else:
answer += chr(num)
return answer
def caesar(s, n):
s = list(s)
for i in range(len(s)):
if s[i].isupper():
s[i]=chr((ord(s[i])-ord('A')+ n)%26+ord('A'))
elif s[i].islower():
s[i]=chr((ord(s[i])-ord('a')+ n)%26+ord('a'))
return "".join(s)
1. chr()
Askyコードを文字列の関数に変換します.
>>> chr(65)
A
>>> chr(90)
Z
2. ord()
文字列をAskyコードの関数に変換します.
>>> ord('a')
97
>>> ord('z')
122
他の人が解いているコードを見ていると、すでに存在しているライブラリで解いている様子が多く見られますが、この問題に触れて、私もこれからも頑張って解いていきたいと思っています.😊Reference
この問題について([Programmers]-パスワードの起動), 我々は、より多くの情報をここで見つけました https://velog.io/@odh0112/Programmers-시저-암호テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol