我试图从字符串中找到最小的子字符串(包含 set 的所有值)
例如:
Input = 'xTxxOxxVxxOxVxxTxxxOxVxTxxxOxxTxVx'
Set = 'OTV'
Output = OxVxT
Input = 'UresqTcdvavUssTss'
Set = 'UT'
Output = UssT
因为< code>OxVxT是示例1中最小的子串(包含集合的所有元素),所以我为它编写了代码,但这不是最好的方法,也不适用于所有示例,我没有通过我的代码找到最小的子串,我的代码如下:
def Fun(S, T):
lst=[]
lst1=[]
lst2=[]
for t in T:
if t not in S: return False
T = list(T)
Z= list(T)
C = list(T)
for i in range(len(S)):
if S[i] in T:
lst.append(i)
T.remove(S[i])
if len(T)==0:break
print (lst)
U=(max(lst))
for u in range(U+1,len(S)):
if S[u] in Z:
lst1.append(u)
Z.remove(S[u])
if len(Z)==0:break
print (lst1)
Q = (max(lst1))
for u in range(Q+1,len(S)):
if S[u] in C:
lst2.append(u)
C.remove(S[u])
if len(C)==0:break
print (lst2)
Str = 'xTxxOxxVxxOxVxxTxxxOxVxTxxxOxxTxVx'
Set = 'OTV'
Fun(Str,Set)
我找到所有可能的子字符串索引,然后找到它们之间的距离,并且距离最短的子字符串是字符串中最小的子字符串。我的代码不能处理所有测试用例,也没有给出正确的结果。
这运行O(S T),需要python 3.7
def Func(S,T):
s=set(S)
d={}
minLen, minBegin=len(T)+1,len(T)+1
for i,c in enumerate(T):
if c in s:
if c in d:
del d[c]
d[c]=i
if len(d)==len(s):
for k,v in d.items():
if i-v+1<minLen:
minLen, minBegin=i-v+1,v
break
if minBegin<len(T):
return T[minBegin:minBegin+minLen]
print(Func('UT', 'UresqTcdvavUssTss')) #Output = UssT
print(Func('OTV', 'xTxxOxxVxxOxVxxTxxxOxVxTxxxOxxTxVx')) #Output = OxVxT
print(Func('A', 'xTxxOxxVxxOxVxxTxxxOxVxTxxxOxxTxVx')) #Output = None
我有一个字符串s和一个整数k(子字符串长度),我正在尝试编写函数,这样它就可以找到长度为k的最小和最大的子字符串。并返回一个字符串,其中最小和最大的子字符串与换行符组合在一起。 到目前为止,我用下面的方法解决了这个问题,我编写了相同的代码来查找最小和最大的子字符串,然而,我想用流返回两个子字符串的单行代码。 我非常感谢任何建议,因为我现在正在学习lambda和stream。 那么,我该如何优雅地解
问题内容: 在Objective-C中,我使用了: 但是现在NSBackWardsSearch似乎不存在。谁能为Swift提供等效的代码? 我希望能够在整个字符串中找到字符数。因此,在上面的示例中,它将返回3。 问题答案: 可可框架应该可以在Swift中访问,但是您需要导入它们。尝试导入以访问NSString API。从“将Swift与Cocoa和Objective-C结合使用”指南的“使用Coc
本文向大家介绍找出包含Python中特定字符串的最小子字符串的程序,包括了找出包含Python中特定字符串的最小子字符串的程序的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个字符串s和t。我们必须找到s中最小的子字符串,其中t也是子字符串的子序列。如果该类型的子字符串不存在,我们将返回一个空白字符串,如果有多个最小的子字符串,我们将选择最左边的一个。 因此,如果输入类似于s =“ abcb
问题内容: 我想在给定的输入string中找到某个子字符串最后一次出现的位置(或索引)。 例如,假设输入字符串为,子字符串为,则应输出3。 我怎样才能做到这一点? 问题答案: 用途: 另外,请勿将其用作变量名,否则将使内置的阴影变暗。
我有两根绳子 在两种情况下,我应该删除
我如何在O(N**2)个时间内完成它?