is_palindrome
関数は、文字列が回文かどうかをチェックします。
パリンドロームは、左から右または右から左に均等に読み取ることができる文字列であり、空白スペースを省略し、大文字の使用を無視します。
パリンドロームの例としては、カヤックやレーダーなどの単語や、「Never Odd or Even」などのフレーズがあります。この関数の空白を埋めて、渡された文字列が回文である場合はTrueを、そうでない場合はFalseを返します。
def is_palindrome(input_string):
# We'll create two strings, to compare them
new_string = ""
reverse_string = ""
input_string =input_string.lower()
# Traverse through each letter of the input string
for x in input_string:
# Add any non-blank letters to the
# end of one string, and to the front
# of the other string.
if x!=" ":
new_string =new_string+ x
reverse_string = x+reverse_string
# Compare the strings
if new_string==reverse_string:
return True
return False
- 違いは何ですか new_string+x
およびx+reverse_string
同じ効果はありませんか?
def is_palindrome(input_string):
# We'll create two strings, to compare them
new_string = ""
reverse_string = ""
# Traverse through each letter of the input string
for letter in input_string:
# Add any non-blank letters to the
# end of one string, and to the front
# of the other string.
if letter != " ":
new_string += letter
reverse_string = letter + reverse_string
# Compare the strings
if new_string.lower() == reverse_string.lower():
return True
return False
new_string + x statsは、スペースを無視して、最初からinput_stringの文字を格納します。簡単に比較できるスペースなしでinput_stringを作成するためにnew_stringが作成されます。
def is_palindrome(input_string):
# We'll create two strings, to compare them
new_string = ""
reverse_string = ""
# Traverse through each letter of the input string
for string in input_string.lower():
# Add any non-blank letters to the
# end of one string, and to the front
# of the other string.
if string.replace(" ",""):
new_string = new_string + string
reverse_string = string + reverse_string
# Compare the strings
if reverse_string == new_string:
return True
return False