3 回答
TA贡献2012条经验 获得超12个赞
尝试这个:
a="pots&pans"
b=a.split("&")
def reverse(word):
if not word:
return ""
return reverse(word[1:]) + word[0]
result = reverse(b[1]) + "&" + reverse(b[0])
print(result)
如果您希望一次递归也反转所有单词的位置:
a="pots&pans&hello&hi"
b=a.split("&")
def reverse(lis):
if not lis:
return ""
if type(lis) == list and len(lis) == 1:
return reverse(lis[0])
if type(lis) == str:
return reverse(lis[1:]) + lis[0]
if type(lis) == list:
return reverse(lis[1:]) + "&" + reverse(lis[0])
print(reverse(b))
TA贡献1856条经验 获得超5个赞
一种递归方法是将第一个字符附加到字符串其余部分的反面:
def rev(s): return rev(s[1:])+s[0] if s else ""
输出:
rev("pots&pans")
'snap&stop'
您也可以在不使用参数解包索引的情况下执行此操作:
def rev(first,*rest): return rev(*rest)+first if rest else first
rev(*"pots&pans")
'snap&stop'
TA贡献1818条经验 获得超7个赞
尝试这个:
a="pots&pans"
def reverse(a_string):
`letter_list = list(a_string)`
`letter_list.reverse()`
`return(''.join(letter_list))`
print(reverse(a))
添加回答
举报