编写一个名为exact weird()
的函数,该函数将三个字符串作为参数并向后打印最长的字符串。 (如果是平局,则应选择前一个参数的字符串。
函数调用:
weird("I", "Love", "Python")
应该导致以下终端输出:
nohtyP
这是我到目前为止所做的事情......我没有把刮擦部分弄好......
running = True
while running:
word = raw_input("Enter word:")
if word[0] in "aeiou":
print word + "yay"
else:
print word[1:] + word[0] + "ay"
答案 0 :(得分:4)
更快的方法(适用于任意数量的字符串)是:
def weird(*s):
return sorted(s,key=len,reverse=True)[0][::-1]
答案 1 :(得分:1)
不幸的是我自己对python有点新手,但我看到这样做的最简单的方法是参考这个Reverse a string in Python来看一个简单的方法来反转字符串。对于选择哪个字符串反转的逻辑,最简单的方法是创建一个列表并根据长度存储最大字符串。
这是一个可能的解决方案,在另一个线程上使用反向方法。理想情况下,这种方法只需要一个列表作为参数,因为它可以适用于所有大小的输入。
def weird(strOne, strTwo, strThree):
strings = [strOne, strTwo, strThree]
max = ""
for x in strings:
if len(max) < len(x):
max = x
print max[::-1]
weird("I", "Love", "Python")
答案 2 :(得分:0)
def weird(str1, str2, str3):
# sort them according to length
# guaranteed stable sort
strings= sorted( (str1, str2, str3), key=len)
# maximum_length is the length of the last one
maximum_length= len(strings[-1])
# now return the earliest (str1 < str2 < str3)
# having len() == maximum_length
for a_string in reversed(strings):
if len(a_string) < maximum_length:
break
result= a_string
return result[::-1]