[蓝桥杯 2025 省 Python B] 最多次数

打印 上一主题 下一主题

主题 1861|帖子 1861|积分 5587

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import sys
  2. def max_times() -> int:
  3.      s = sys.stdin.readline().strip()
  4.      checked = {'l','q','b'} # set(),不存在键值对,识别为set()
  5.      n = len(s)
  6.      time = 0
  7.      i = 0
  8.      while i < n - 2:
  9.          sec = s[i:i+3]
  10.          if set(sec) == checked:
  11.              i += 3
  12.              time += 1
  13.          else:
  14.              i += 1
  15.    
  16.      sys.stdout.write(str(time))
  17. if __name__ == "__main__":
  18.      max_times()
复制代码
ps:
解法关键:处理片段切割问题,片段切割后,里面的任何部分都不可再使用
-----------------------------------------------------------------------------------------------------------------------------

变体:
处理片段切割问题,片段切割后,里面的任何部分可再使用
  1. import sys
  2. def max_count() -> int:
  3.      s = sys.stdin.readline().strip()
  4.      checked = {'l','q','b'} # set(),不存在键值对,识别为set()
  5.      n = len(s)
  6.      set_ = set() # 存贮没有重复的组合
  7.      # {} --> 空字典  set --> 空集合
  8.      for i in range(n - 2):
  9.          sec = s[i:i+3]
  10.          if set(sec) == checked and sec not in set_:
  11.              set_.add(sec)
  12.          else:
  13.              continue
  14.    
  15.      sys.stdout.write(str(len(set_)))
  16. if __name__ == "__main__":
  17.      max_count()
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表