题目:查找字符串--Find a string

题目要求:
在这个挑战中,用户输入一个字符串和一个子字符串。您必须打印子字符串在给定字符串中出现的次数。字符串遍历将从左到右进行,而不是从右到左。
解题代码:
方法1:
def count_substring(string, sub_string):
# 如果子字符串为空或比主字符串长,直接返回0
if not sub_string or len(sub_string) > len(string):
return 0
count = 0
# 优化循环范围,避免不必要的检查
for i in range(len(string) - len(sub_string) + 1):
if string[i:i + len(sub_string)] == sub_string:
count += 1
return count
if __name__ == '__main__':
string = input().strip()
sub_string = input().strip()
count = count_substring(string, sub_string)
print(count)
方法2:
def count_substring(string, sub_string):
count = 0
start = 0
# 使用 find 方法来查找下一个出现的位置
while True:
start = string.find(sub_string, start)
if start == -1: # 如果找不到,结束
break
count += 1
start += 1 # 从下一个位置继续查找
return count
if __name__ == '__main__':
string = input().strip()
sub_string = input().strip()
count = count_substring(string, sub_string)
print(count)
文章评论