0

私は2つの文字列を持っていると仮定しましょう

M = "sses"
N = "assesses"

文字列 M が文字列 N に存在する回数を数えなければなりません

必要に応じて、ループと range() だけをインポートまたはメソッドを使用することは許可されていません。

M = "sses"
N = "assesses"
counter = 0
if M in N:
  counter +=1
print(counter)

これでは十分ではありません。N を通過し、存在するすべての M をカウントするループが必要です。この場合は 2 です。

4

1 に答える 1

1
def count(M, N):
    i = 0
    count = 0
    while True:
        try:
            i = N.index(M, i)+1
            count += 1
        except ValueError:
            break
    return count

またはなしのワンライナーstr.index

def count(M, N):
    return sum(N[i:i+len(M)]==M for i in range(len(N)-len(M)+1))

sum関数を使用せずに同じ:

def count(M, N):
    count = 0
    for i in range(len(N)-len(M)+1):
        if N[i:i+len(M)] == M:
            count += 1
    return count
于 2012-09-06T16:53:03.207 に答える