簡體   English   中英

在python中查找字符串中子字符串的出現次數

[英]to find number of occurrences of a substring in a string in python

問題:在這個挑戰中,用戶輸入一個字符串和一個子字符串。 您必須打印子字符串在給定字符串中出現的次數。 字符串遍歷將從左到右進行,而不是從右到左。 注意:字符串字母區分大小寫。

樣本輸入

ABCDCCDC

樣本輸出 2

這是我的解決方案,但我沒有得到正確的輸出(我得到 1 作為輸出)。 是什么原因?

def count_subtring(string, sub_string):  
    len_string = int(len(string))
    len_substring = int(len(sub_string))
    l = len_string - len_substring + 1
    n = 0
    for i in range (l):
        if string[i:i + len_substring] == sub_string:
            n =+ 1
    return n

if __name__ == '__main__':
    string = input().strip()
    sub_string = input().strip()
    
    count = count_substring(string, sub_string)
    print(count)

我找到了一個解決方案,但我無法理解它,我想解釋一下下面的代碼

def count_substring(string, sub_string):
    count=0
    for i in range(len(string)):
        for j in range(len(sub_string)):
            if string[i+j]==sub_string[j] and j==(len(sub_string)-1):
                count=count+1  
            if string[i+j]!=sub_string[j]:
                break  
        if i==len(string)-len(sub_string):
            break            
    return count


if __name__ == '__main__':
    string = input().strip()
    sub_string = input().strip()
    
    count = count_substring(string, sub_string)
    print(count)

謝謝

當您找到匹配項而不是向其添加 1 ( n += 1 ) 時,您正在為n分配+1

n =+ 1n = +1n = 1相同。

所以結果永遠不會大於 1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM