天天蓝海

  • 首页
  • Python学习
    • HackRank挑战
  • 纪念墙
天天蓝海
学习、记录
  1. 首页
  2. Python学习
  3. HackRank挑战
  4. 正文

【Python学习】-Hackrank挑战-字符串-查找字符串

2025年3月9日 276点热度 0人点赞 0条评论

题目:查找字符串--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)
标签: HackRank Challenge
最后更新:2025年3月9日

timmyblue

我们没有说再见,只是很默契的没有打扰。

点赞
< 上一篇
下一篇 >

归档

  • 2025 年 3 月
  • 2025 年 2 月

分类

  • HackRank挑战
  • Python学习

Copyright © 天天蓝海 All Rights Reserved.

苏ICP备2025161349号