华为OD机试】连续字母长度-python

python-连续字母长度

    • 题目
    • 代码
    • 总结
      • 用到知识点
    • 代码编写总结

题目

题目描述
给定一个字符串:只包含大写字母:求在包含同一个字母的子串中,长度第k长的子串的长度;相同字母只取最长的那个子串。若子串中只包含同一个字母的子串数小于k;则输出-1.

输入描述:
第一行有一个字符串:只包含大写字母
第二行有一个数字:表示k的值
输出描述:
输出连续出现次数第k多的字母的次数

示例1:
输入
AAAAHHHBBCDHHHH
3
输出
说明
同一字母连续出现的最多的是A和H:4次;
第二多的是H:3次:但是H已经存在4个连续的了:故不再考虑;
下个最长的子串是BB:其长度为2:所以最终答案应该输出2

示例2:
输入
AABAAA
输出
1
说明
同一字母连续出现的最多的是A:3次;
第二多的还是A:两次:但是A已经出现过了:故不考虑;
第二个最长子串是B:它的长度是1:所以输出1

示例3:
输入
ABC
4
输出
-1
说明
只含有3个包含同一个字母的子串:小于k:输出-1

示例4:
输入
ABC
输出
1
说明
三个子串长度均为1:所以此时这三种情况均输出1

代码

def Contn_Alpha(alphabat, k):
    #如果K值长度大于字符串中不相同字母个数则直接返回-1
    if len

你可能感兴趣的:(华为od,python,开发语言)