알아 둘 것 ⭐️
(1) ord(), chr()
ord(문자)
: 하나의 문자를 인자로 받아 해당하는 유니코드 정수를 반환
chr(정수)
: 하나의 정수를 인자로 받아 해당하는 유니코드 문자를 반환
ord('a') # 97
ord('z') # 122
ord('A') # 65
ord('Z') # 90
ord('ㄱ') # 12593
ord('ㅎ') # 12622
chr(97) # a
chr(122) # z
chr(12593) # ㄱ
(2) 문자열 뒤집기
string = 'HackerRank'
reversed_string = string[::-1] # knaRrekcaH
string = 'HackerRank'
reversed_string = ''.join(reversed(string)) # knaRrekcaH
python 코드
def theLoveLetterMystery(s):
if len(s) == 1: # 길이가 1인 문자열은 이미 palindrome
return 0
else:
mid = len(s) // 2
left = s[:mid]
if len(s) % 2 == 1: # 문자열 길이가 홀수인 경우
right = s[mid + 1:]
elif len(s) % 2 == 0: # 문자열 길이가 짝수인 경우
right = s[mid:]
right = right[::-1] # 오른쪽 절반 문자열 뒤집기
if left == right: # 왼쪽 문자열과 오른쪽 뒤집은 문자열이 같으면 palindrome!
return 0
else:
diff = list(map(lambda l, r: ord(l) - ord(r) if l > r else ord(r) - ord(l), left, right))
return sum(diff)