当前位置: 首页 > news >正文

2024_E_100_连续字母长度

连续字母长度
题目描述
给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。

输入描述
第一行有一个子串(1<长度<=100),只包含大写字母。

第二行为 k的值

输出描述
输出连续出现次数第k多的字母的次数。

用例1
输入
AAAAHHHBBCDHHHH
3
输出
2
说明
同一字母连续出现的最多的是A和H,四次;

第二多的是H,3次,但是H已经存在4个连续的,故不考虑;

下个最长子串是BB,所以最终答案应该输出2。

用例2
输入
AABAAA
2
输出
1
说明
同一字母连续出现的最多的是A,三次;

第二多的还是A,两次,但A已经存在最大连续次数三次,故不考虑;

下个最长子串是B,所以输出1。

用例3
输入
ABC
4
输出
-1

def func():strs = input()k = int(input())cnt = {}#先把第一个加进来cnt[strs[0]] = 1left = 1while left < len(strs):if strs[left] == strs[left-1]:cnt[strs[left]] += + 1else:if strs[left] not in cnt:cnt[strs[left]] = 1else:count = cnt[strs[left]]right = left+1while right < len(strs) and strs[right] == strs[left]:tmp = right - left + 1count = max(count,tmp)right += 1cnt[strs[left]] = countleft = rightcontinueleft += 1#print(cnt)#把cnt按value降序排列newcnt = sorted(cnt.items(), key=lambda x: -x[1])#print(newcnt)maxlength = newcnt[0][1]minlength = newcnt[-1][1]if k < minlength or k > maxlength:return -1for i in range(len(newcnt)):if i != k-1: #k也要从0开始continuereturn(newcnt[i][1])if __name__ == '__main__':print(func())

在这里插入图片描述

用例1
输入
AABBAA
2
输出
2
用例2
输入
BBBAACCCAA
2
输出
3
用例3
输入
BAACCCDDDD
3
输出
2
用例4
输入
BAACCCDDDDBBBAAACDDDDD
2
输出
3
用例5
输入
CCCCCCCCCCCCCCCCCCCC
1
输出
20
用例6
输入
CCCCCCCCCCCCCCCCCCCC
1
输出
20
用例7
输入
FFFFRRRRRO
2
输出
4
用例8
输入
GGGGGZZZZZAZZZZZVAAAADCAAALLL
4
输出
3
用例9
输入
UUUOOOOOMMMUUELLLLLCCCCCCWWWWWOOOOORRRRROODDDDWNNN
20
输出
-1
用例10
输入
UUUOOOOOMMMUUELLLLLCCCCCCWWWWWOOOOORRRRROODDDDWNNN
10
输出
1
用例11
输入
DDDDDNNNNSSSSBOPPPPPXXHHHHHKKRRRRAAAQQQQAUUAAAOOIKKKKKGGGGQQIBYYRRRRRSSSSEEEJJJJYYYYDDBFFDDTTSSSSMNN
2
输出
5
用例12
输入
QQQ
2
输出
-1
用例13
输入
QQQAA
0
输出
-1
用例14
输入
QQQAA
-1
输出
-1
用例15
输入
WWWWHHHHRRRRRWWWWHHHHRRRRRWWWWYYYYBBBBJJJXXFJJSSSSOOOOOAUUUOOEEEEE
2
输出
5
用例16
输入
BCDBSD
2
输出
1
用例17
输入
BBCC
2
输出
2
用例18
输入
BD
4
输出
-1
用例19
输入
BBD
3
输出
-1
用例20
输入
AAAAHHHBBCDHHHH
3
输出
2
用例21
输入
AABAAA
2
输出
1
用例22
输入
ABC
4
输出
-1
用例23
输入
ABC
2
输出
1
用例24
输入
ABC
27
输出
-1
1
http://www.lryc.cn/news/461481.html

相关文章:

  • 清空redo导致oracle故障恢复---惜分飞
  • VAE(与GAN)
  • 【高等数学】多元微分学(二)
  • .NET 中的 Web服务(Web Services)和WCF(Windows Communication Foundation)
  • Linux小知识2 系统的启动
  • Oracle-19g数据库的安装
  • Dubbo快速入门(二):第一个Dubbo程序(附源码)
  • 不同数据类型转换与转义的对比差异
  • Kylin系统安装VMwareTools工具
  • uni-app 拍照图片添加水印
  • Docker-registry私有镜像仓库的安装
  • 在vue3中实现祖组件给后代组件传参,可以跨域几层。
  • 【优选算法】——双指针(上篇)!
  • 【C语言】数据输出格式控制
  • Qt-界面优化选择器的用法(70)
  • 全国职业技能大赛——信息安全管理与评估第一阶段BC、FW、WAF题目详细解析过程
  • 基于Vite创建项目
  • 面试题:在 React 中如何绑定事件
  • 前端将JSON或者table直接导出为excel
  • 算法之排序
  • 深度学习:LSTM循环神经网络实现评论情感分析
  • 基于Arduino的环境监测装置
  • 深度学习:模型攻击(Model Attack)详解
  • CesiumLab介绍
  • PyQt 入门教程(3)基础知识 | 3.2、加载资源文件
  • 老照片修复工作流教程:用 ComfyUI 轻松还原历史记忆
  • ESP-IDF Blink实例学习
  • QT QML 练习8-Simple Transformations
  • 低空产业园搭建技术详解
  • Python网络爬虫从入门到实战