华为OD-----连续字母长度

华为OD机试】连续字母长度-python 连续字母长度 阅读详情

题目描述
给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 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
说明
只含有3个包含同一字母的子串,小于k,输出-1

用例4
输入
ABC
2
输出
1
说明
三个子串长度均为1,所以此时k = 1,k=2,k=3这三种情况均输出1。特此说明,避免歧义。

def get_klen(S,k):
    long_dirct = {}  # 存储每个字符的最长连续出现次数
    current_char = None
    current_count = 0
    for i in range(len(S)):
        if S[i] == current_char:
            current_count += 1
        else:
            if current_char is not None:
                long_dirct[current_char] = max(long_dirct.get(current_char, 0), current_count)
            current_char = S[i]
            current_count = 1
            # 添加最后一个字符的计数
    if current_char is not None:
        long_dirct[current_char] = max(long_dirct.get(current_char, 0), current_count)

    counts = sorted(long_dirct.values(), reverse=True)
    # 如果k在有效范围内内,返回第k大的值,否则返回0
    if 0<k <= len(counts):
        return counts[k - 1]
    else:
        return -1

S = input()
k=int(input())
print(get_klen(S,k))

连续字母长度 已支持(Java & JS & Python & C & C++),考察:逻辑分析 阅读详情

相关推荐

【新2023Q2押题JAVA】华为OD机试 - 第 k 长子串 or 连续字母长度

本篇题解:第 k 长子串 or 连续字母长度 题目 给定一个字符串,只包含大写字母 求在包含同一字母的子串中,长度第 K 长的子串,相同字母只取最长的子串 输入 第一行 一个子串 1 < len

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

华为OD机试真题---连续字母长度

给定一个字符串Q,该字符串只包含大写字母。要求找出在包含同一字母的子串中,长度第k长的子串的长度,相同字母只取最长的子串。若子串中只包含同一字母的子串数小于k,则输出-1。

风信子的博客 985

华为OD机试真题 JAVA】找出字符串中的最长(连续)子串的长度

1、 只包含1个字母(a~z, A~Z),其余必须是数字;如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。满足条件的最长子串是C124或者124A,长度都是4。字符串自身就是满足条件的子串,长度为2。2、 字母可以在子串中的任意位置;满足条件的子串为B9,长度为2。没有满足要求的子串,返回-1。字符串(只包含字母和数字)

风中追风 914

算法题】连续字母长度(js)

难点就在于如何使其计算重复的值,以及最后一次结果别忘记添加进对象里。

qq_43682422的博客 264

华为机试:获取字符串中连续出现次数第k多的字母的次数

给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。第一行有一个子串(1

AOBO516的专栏 1450

华为od统一考试B卷【连续字母长度】Python 实现

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

MISAYAONE的博客 5022

华为OD机考真题】-连续字母长度(E卷-100分)(Python版)

🔔本文收录于「最新最全华为OD机试真题(Python版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!本人所写题库均精心搜集于互联网。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅读使用!

**My Coding Family** 924

最新华为OD机试真题——(E卷,100分)-连续字母长度(python)

给定一个字符串,只包含大写字母,要求在包含同一字母的子串中,长度第 ( k ) 长的子串的长度。对于相同字母,只取最长的那个子串。

qq_62634009的博客 746

华为OD机试真题-连续字母长度

同一字母连续出现的最多的是A,三次;三个子串长度均为1,所以此时k=1,k=2,k=3这三种情况均输出1。特此说明,避免歧义。注:本文章只是提供一种方法,作为一个记录,相较一些大佬的代码而言,此代码比较冗余。的子串中,长度第k长的子串的长度,相同字母只取最长的那个子串。第一行有一个子串(1<长度<=100),只包含大写字母。只含有3个包含同一字母的子串,小于k,输出-1。给定一个字符串Q,只包含大写字母,求在包含。同一字母连续出现的最多的是A和H,四次;下个最长子串是B,所以输出1。

lovely_compiler的博客 274

华为OD机试真题 C语言】428、连续字母长度 | 机试真题+思路参考+代码解析(C卷)

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

KJ.JK 1836

华为OD机考真题】- 连续字母长度(B卷-100分)(C++版)

🔔本文收录于「最新最全华为OD机试真题(C++版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!本人所写题库均精心搜集于互联网。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅读使用!

**My Coding Family** 1192

华为OD机考真题】- 连续字母长度(E卷-100分)(C版)

🔔本文收录于「最新最全华为OD机试真题(C版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅

**My Coding Family** 905

华为OD-连续字母长度

华为OD笔试-连续字母长度

u010049474的博客 468

华为OD机考真题】- 连续字母长度(B卷-100分)(JS版)

🔔本文收录于「最新最全华为OD机试真题(JavaScript版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!专栏所写题库均精心搜集于互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验所撰,欢迎订阅。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,

**My Coding Family** 786

华为od真题 连续字母长度、求第K长的字符串长度

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

weixin_54707168的博客 265

华为OD机试真题 JAVA】连续字母长度

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

qq_34465338的博客 2064

华为OD机试真题 Python语言】428、连续字母长度 | 机试真题+思路参考+代码解析(C卷)(E卷复用)

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

KJ.JK 2138

华为OD机考真题】- 连续字母长度(E卷-100分)(Java)

🔔本文收录于「最新最全华为OD机试真题(Java版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!本人所写题库均精心搜集于互联网。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅读使用!

**My Coding Family** 1205
上一篇: 华为OD-----字符串筛选排序
下一篇: 华为OD----最大N个数与最小N个数的和
我狠狠地刷刷刷刷刷
博客等级 码龄6年 332粉丝 145原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值