【发布时间】:2012-06-25 11:23:11
【问题描述】:
以下内容适用于 Python 3.2.3。
我想编写一个带有两个参数的函数,一个键字符串和一个目标字符串。这些功能是递归地确定(必须是递归的)关键字符串在目标字符串中的位置。
目前,我的代码如下。
def posSubStringMatchRecursive(target,key):
import string
index=str.rfind(target, key)
if index !=-1:
print (index)
target=target[:(index+len(key)-1)]
posSubStringMatchRecursive(target,key)
这样做的问题是,没有办法将目标字符串中键字符串的所有位置存储在列表中,因为指示位置的数字只会被打印出来。
所以,我的问题是,有没有办法改变代码,使得目标字符串中的键字符串的位置可以存储在一个列表中?
示例输出
countSubStringMatchRecursive ('aatcgdaaaggraaa', 'aa')
13
12
7
6
0
编辑
以下代码似乎在 Ashwini 的代码中没有问题。谢谢,列夫。
def posSubStringMatchRecursive(target,key):
import string
index=str.rfind(target, key)
if index ==-1:
return []
else:
target=target[:(index+len(key)-1)]
return ([index] + posSubStringMatchRecursive(target,key))
【问题讨论】:
-
为什么一定要递归?如果这是一个家庭作业问题,请tag它本身
-
我有一个漂亮而干净的迭代方法,我只是想知道您是否可以递归生成一个列表,因为递归版本的运行时似乎更快(对于小样本)
-
老实说,问题来自 [link]ocw.mit.edu/courses/electrical-engineering-and-computer-science/… 但这并不是我的功课
标签: python string search python-3.x