【问题标题】:Program to find whether a string is substring of another string [duplicate]程序来查找一个字符串是否是另一个字符串的子字符串[重复]
【发布时间】:2015-03-21 06:07:43
【问题描述】:

str1 是要在其中执行搜索的字符串(大海捞针)。 str2 是要找到的字符串(针)。 count 将统计str2 在str1 中出现的次数。

下面的代码在最后一行给了我一个语法错误。请提出更改建议。

str1 = raw_input()
str2 = raw_input()
count = 0
for i in range(0,len(str1)) :

    if ( str1.find(str2, i, i+len(str2))) : 
        count=count+1
print count      

【问题讨论】:

  • 使用str1.count(str2)..
  • print 是 Python 3 中的一个函数。
  • @MarounMaroun,不计算重叠字符串
  • @PadraicCunningham 已编辑。
  • @MarounMaroun,也已编辑!

标签: python python-2.7


【解决方案1】:

要判断一个字符串是否是另一个字符串的子字符串,可以使用in 运算符

"abc" in "abcd" # will return true

要计算出现次数,您可以使用字符串的count 方法

"abcda".count("a") # will return 2

【讨论】:

    【解决方案2】:

    如果要计算 str2 在 str1 中的次数,包括重叠字符串:

    str1 = raw_input() # input() if using python3
    str2 = raw_input() 
    print(sum(str1[i:i+len(str2)] == str2 for i in xrange(len(str1)) ))
    

    例子:

    In [12]: paste
    str1 = raw_input()
    str2 = raw_input()
    sum(str1[i:i+len(str2)] == str2 for i in xrange(len(str1)))
    
    ## -- End pasted text --
    bobob
    bob
    Out[12]: 2
    

    【讨论】:

    • 好答案,这也涵盖了重叠的字符串。
    • @MarounMaroun,我可能是错的,但 OP 的代码确实看起来像是在做同样的尝试。
    猜你喜欢
    • 1970-01-01
    • 2019-05-11
    • 2015-07-10
    • 2013-05-12
    • 2022-07-01
    • 2011-02-07
    • 2017-08-23
    • 1970-01-01
    相关资源
    最近更新 更多