문장에 포함된 회문(팰린드롬) 단어를 정렬해야 할 때는, 문자열을 매개변수로 받아 해당 단어가 회문인지 먼저 확인하는 메서드를 정의합니다. 이후 문장의 모든 단어를 정렬하여 최종 결과를 출력합니다.
예제
아래는 이를 구현한 예시 코드입니다.
def check_palindrome(my_string):
if(my_string == my_string[::-1]):
return True
else:
return False
def print_sort_palindromes(my_sentence):
my_list = []
my_result = list(my_sentence.split())
for i in my_result:
if(check_palindrome(i)):
my_list.append(i)
my_list.sort()
j = 0
for i in range(len(my_result)):
if(check_palindrome(my_result[i])):
my_result[i] = my_list[j]
j = j + 1
for i in my_result:
print(i)
my_sentence = "hi madam, how are u"
print("The sentence is ")
print(my_sentence)
print("The result is :")
print_sort_palindromes(my_sentence)출력
The sentence is hi madam, how are u The result is : hi madam, how are u
설명
'check_palindrome'이라는 이름의 메서드가 정의되며, 이 메서드는 문자열을 매개변수로 받습니다.
이 메서드는 전달받은 문자열이 회문인지 여부를 확인합니다.
'print_sort_palindromes'라는 또 다른 메서드가 정의되며, 문장을 매개변수로 받습니다.
함수 내부에서는 빈 리스트가 생성됩니다.
문장은 공백을 기준으로 분리되어 각 단어를 요소로 가지는 리스트로 변환됩니다.
리스트의 각 요소를 순회하면서 문장 내 단어들이 회문인지 검사합니다.
회문인 경우 해당 단어는 앞서 생성한 빈 리스트에 추가됩니다.
회문 단어만 담긴 이 리스트는 오름차순으로 정렬됩니다.
메서드 외부에서 문장이 정의되고 콘솔에 출력됩니다.
매개변수를 전달하여 메서드가 호출됩니다.
정렬된 결과가 콘솔에 표시됩니다.