【问题标题】:checking if a string is subsequence of another string检查一个字符串是否是另一个字符串的子序列
【发布时间】:2022-07-01 22:13:18
【问题描述】:

给定两个字符串M和W,需要检查一个是否是另一个的子序列。

我尝试了以下方法:

def filterr(bigStr,smallStr,i):
res=''
for char in bigStr:
    if(char in smallStr[i:]):
        i+=1
        res+=char
return res

m,w=input().split()
if(m==w):
    print('YES')
else:
    if(len(m)<len(w)):
        m,w=w,m
    s=filterr(m,w,0)
    if(s==w): print('YES')
    else: print('NO')

我不明白我上面的代码有什么问题。它不适用于某些未知的测试用例(在编码站点上)。我已经尝试了我能想到的所有类型的输入,并且它为所有输入提供了正确的答案。 例子:

i/p:“约翰·约翰娜”o/p:是的

i/p: "ira ira" o/p: 是

i/p: "kayla jayla" o/p: NO

【问题讨论】:

  • “john”如何成为“johanna”的子序列?

标签: python algorithm subsequence


【解决方案1】:

如果您不想知道子字符串的位置,那么您可以检查。

if smallStr in bigStr:
    print("Is substring")
else:
    print("Is not substring)

【讨论】:

    【解决方案2】:

    你可以用这个:

    small, big = input().split()
    if small in big:
        print('Yes: at index', big.index(small))
    else:
        print('No')
    

    但我不明白JohnJohanna 的子序列

    【讨论】:

      【解决方案3】:

      您需要使用in 运算符来检查一个字符串是否是另一个字符串的子字符串:

      m,w=input().split()
      if(m==w):
          print('YES')
      else:
          if len(w)>len(m):
            m, w = w, m
          if w in m:
            print('YES')
          else:
            print('NO')
      

      【讨论】:

        猜你喜欢
        • 2019-05-11
        • 1970-01-01
        • 2013-05-12
        • 2011-02-07
        • 1970-01-01
        • 2011-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多