Back to Freecodecamp

Challenge 65: String Count

curriculum/challenges/english/blocks/daily-coding-challenges-python/68cae5b538ff798bbd4da003.md

latest1.5 KB
Original Source

--description--

Given two strings, determine how many times the second string appears in the first.

  • The pattern string can overlap in the first string. For example, "aaa" contains "aa" twice. The first two a's and the second two.

--hints--

count('abcdefg', 'def') should return 1.

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(count('abcdefg', 'def'), 1)`)
}})

count('hello', 'world') should return 0.

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(count('hello', 'world'), 0)`)
}})

count('mississippi', 'iss') should return 2.

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(count('mississippi', 'iss'), 2)`)
}})

count('she sells seashells by the seashore', 'sh') should return 3.

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(count('she sells seashells by the seashore', 'sh'), 3)`)
}})

count('101010101010101010101', '101') should return 10.

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(count('101010101010101010101', '101'), 10)`)
}})

--seed--

--seed-contents--

py
def count(text, parameter):

    return text

--solutions--

py
def count(text, pattern):
    if not pattern:
        return 0
    occurrences = 0

    for i in range(len(text) - len(pattern) + 1):
        if text[i:i+len(pattern)] == pattern:
            occurrences += 1

    return occurrences