Python中的切片,HackerRank公共子对象

2024-06-16 11:15:15 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我的代码,用于解决在相同顺序的两个字符串中查找相同字母的最大序列的问题。我的方法基本上是查看字母是否在两个字符串中,然后在该字母上,比较字符串被切片以避免以错误的顺序计算任何内容(例如,SHA和HAP具有HA公共,但SAH和HAP只有A或H公共)

def commonChild(s1, s2):
stringA = []
a = s1
stringB = []
b = s2
y = 0
x = 0

for num in s1:
    if num in b[y:]:
        
        stringA.append(num)
        y = b.index(num) + 1
      
    else:
        pass

for num in s2:
    if num in a[x:]:
        
        stringB.append(num)
        x = a.index(num) + 1

    else:
        pass

theone = max(len(stringA),len(stringB))
return theone

它适用于小型测试(s1=SALLY,s2=HARRY),但对于大型测试,我发现我的切片没有正确执行(切片发生在错误的索引处)。关于如何改进切片的任何建议


Tags: 字符串inforif顺序错误字母切片