[英]Doubling string characters with recursion
假設我有字符串“my name is”,我如何遞歸地返回字符串“mmyy nnammee iiss”?
你可以做類似的事情
def double(s):
out = ''
for letter in s:
out=out+s+s
return out
這有
INPUT:print(double("hello"))
OUTPUT:hheelllloo
下面就夠簡單了。 將第一個字母加倍,然后遞歸調用其余的字母。 基本情況:空字符串:
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.