假設我有字串“my name is”,我如何遞回回傳字串“mmyy nnammee iiss”?
uj5u.com熱心網友回復:
你可以做類似的事情
def double(s):
out = ''
for letter in s:
out=out s s
return out
這有
INPUT:print(double("hello"))
OUTPUT:hheelllloo
uj5u.com熱心網友回復:
下面就夠簡單了。將第一個字母加倍,然后遞回呼叫其余的字母。基本情況:空字串:
def double(s):
if not s:
return s
return 2 * s[0] double(s[1:])
double("my name is")
# 'mmyy nnaammee iiss'
請注意,遞回方法的重復切片和另一個答案的重復字串連接使兩個解決方案的時間復雜度都是二次的。演算法上更健全(線性)將是str.join線性構建的串列或生成器運算式:
def double(s):
return "".join(2*c for c in s)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/337429.html
上一篇:在異步函式中使用遞回
下一篇:Bash遞回函式沒有正確執行
