首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >建议的解决方案的时间复杂度是多少?

建议的解决方案的时间复杂度是多少?
EN

Stack Overflow用户
提问于 2022-04-29 07:06:31
回答 1查看 77关注 0票数 0

这是解决以下问题的方法:给定长度为N的两个字符串s和t,在s和t内交换两个字符后,在字符串s和t中找到最大可能的匹配对。交换是交换si和sj,其中si和sj分别表示s的ith和jth索引处存在的字符。这两个字符串的匹配对被定义为si和ti相等的索引数。注意:这意味着您必须在不同的索引上交换两个字符。

这其中的时间复杂性是多少?

代码语言:javascript
复制
s = "abcd"
t = "adcb"

tl = list(t)
pairs = []

for i in range(len(list(s))):
    window = 1
    j = i + window 
    
    while j < len(s):
        sl = list(s)
        sl[i], sl[j] = sl[j], sl[i]

        ds = {sl[k]: k for k in range(len(sl))}
        dt = {tl[k]: k for k in range(len(tl))}
        
        pairs.append(len(ds.items() & dt.items()))
        j += 1
        
max(pairs)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-29 09:59:30

算法的复杂性是O(N立方)。

嵌套循环在数组中的最大深度为3。在这种情况下,我们可以忽略depth内部的一系列循环来计算复杂性。(复杂度为O(N_N_3N),相当于O(N)立方)

对于如何计算复杂性here,有一个很好的解释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72054024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档