简述计算字符串中子串出现的次数 ?
参考答案:
计算字符串中子串出现的次数是一个常见的编程问题。以下是一个简单的Python函数,用于计算给定字符串中子串的出现次数:
def count_substring(main_string, substring):
count = 0
start_index = 0
while True:
start_index = main_string.find(substring, start_index)
if start_index == -1:
break
count += 1
start_index += 1
return count
这个函数的工作原理如下:
- 初始化计数器
count
为0,这个计数器将用于记录子串在主字符串中出现的次数。 - 使用
find()
函数查找子串在主字符串中的位置。find()
函数返回子串首次出现的位置的索引,如果没有找到则返回-1。 - 如果
find()
函数返回-1,说明已经遍历完了整个主字符串,没有找到更多的子串,因此跳出循环。 - 如果找到了子串,将计数器
count
加1,并更新start_index
为当前子串的下一个位置,以便在下一次循环中查找下一个子串。 - 循环结束后,返回计数器
count
,即为子串在主字符串中出现的次数。
你可以通过调用这个函数并传入主字符串和子串来计算子串在主字符串中出现的次数,例如:
main_string = "hello world, hello python"
substring = "hello"
count = count_substring(main_string, substring)
print(count) # 输出:2
在这个例子中,子串 "hello" 在主字符串中出现了两次,因此函数返回2。