【发布时间】:2020-04-10 09:32:14
【问题描述】:
我正在尝试使用 k 个唯一字母找到可能的最大子字符串。有没有办法可以通过字符串分区进行递归? 我的想法是通过剪切最后一个字符来分割一个字符串,如果我找到包含 k 个唯一字母的第一个子字符串,我会返回它。
For example k = 2, string = "abccd"
abccd ->
abcc, bccd ->
abc,bcc,bcc,ccd -> return bcc
def unique_l(sub, k):
u=0
visited = set()
for ch in sub:
if ch not in visited:
visited.add(ch)
u += 1
if u < k:
return -1
elif u == k:
return 1
else:
return 0
def find_sub(string,k):
if unique_l(string,k) == 1:
return string
if unique_l(string,k) == -1:
return "Not Found"
find_sub(string[0:len(string)-1],k) # Left
find_sub(string[1:len(string)],k) # Right
我知道我可以使用迭代在 O(n) 时间内完成,但有没有办法递归?
【问题讨论】:
标签: python string recursion substring