B2126 连续出现的字符

连续出现的字符

题目描述

给定一个字符串,在字符串中寻找第一个连续出现次数不低于 k k k 次的字符。

输入格式

2 2 2 行。第 1 1 1 行是 k k k;第 2 2 2 行是仅包含大小写字母的字符串。

输出格式

字符串中第一个连续出现次数不低于 k 次的字符。如果没有符合条件的字符,输出 No

样例 #1

样例输入 #1

3
abcccaaab

样例输出 #1

c

提示

1 ≤ k ≤ 1000 1\leq k\leq1000 1k1000,字符串长度不超过 1000 1000 1000

方法1

解题思路:

本题要求我们在给定的字符串中寻找第一个连续出现次数不低于 k k k 次的字符。我们可以使用一个计数器来记录当前字符连续出现的次数,遍历字符串并更新计数器的值,找到符合条件的字符并返回。

具体步骤如下:

  1. 定义一个计数器 count,初始值为 1,用于记录当前字符连续出现的次数。
  2. 使用 for 循环遍历字符串,从下标 1 开始。
  3. 如果当前字符与前一个字符相同,则将 count 加 1。
    • 如果 count 的值达到 k k k,则找到了符合条件的字符,将其转换为字符串并返回。
  4. 如果当前字符与前一个字符不同,则将 count 重置为 1。
  5. 如果遍历完整个字符串都没有找到符合条件的字符,则返回字符串 "No"

C++代码:

#include <iostream>
#include <string>
using namespace std;string findConsecutiveChar(int k, string str) {int n = str.length();int count = 1;for (int i = 1; i < n; i++) {if (str[i] == str[i - 1]) {count++;if (count >= k) {return string(1, str[i]);}} else {count = 1;}}return "No";
}int main() {int k;string str;cin >> k;cin >> str;string result = findConsecutiveChar(k, str);cout << result << endl;return 0;
}

代码解释:

  1. 定义函数 findConsecutiveChar,接受两个参数:整数 k k k 和字符串 str。该函数用于寻找字符串中第一个连续出现次数不低于 k k k 次的字符,并返回字符串类型的结果。
  2. 在函数内部,定义变量 count 用于记录当前字符连续出现的次数,初始值为 1。
  3. 使用 for 循环遍历字符串,从下标 1 开始。
  4. 如果当前字符与前一个字符相同,则将 count 加 1。
    • 如果 count 的值达到 k k k,则找到了符合条件的字符,使用 string(1, str[i]) 将该字符转换为字符串并返回。
  5. 如果当前字符与前一个字符不同,则将 count 重置为 1。
  6. 如果遍历完整个字符串都没有找到符合条件的字符,则返回字符串 "No"
  7. main 函数中,读取整数 k k k 和字符串 str
  8. 调用 findConsecutiveChar 函数,将 k k kstr 作为参数传入,获取结果字符串。
  9. 输出结果字符串。

复杂度分析:

  • 时间复杂度: O ( n ) O(n) O(n),其中 n n n 是字符串的长度。我们只需要遍历一次字符串。
  • 空间复杂度: O ( 1 ) O(1) O(1)。我们只使用了常数级别的额外空间。

输入输出样例:

输入:

3
abcccaaab

输出:

c

该解决方案使用了一个计数器来记录当前字符连续出现的次数,通过遍历字符串并更新计数器的值,我们可以找到第一个连续出现次数不低于 k k k 次的字符。当找到符合条件的字符时,将其转换为字符串并返回。如果没有找到符合条件的字符,则返回字符串 "No"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/18831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python面试宝典:Python中与动态规划和排序算法相关的面试笔试题(1000加面试笔试题助你轻松捕获大厂Offer)

Python面试宝典:1000加python面试题助你轻松捕获大厂Offer【第二部分:Python高级特性:第十二章:高级数据结构和算法:第二节:Python中实现各类高级数据结构与算法三】 第十二章:高级数据结构和算法第二节:Python中实现各类高级数据结构与算法2.3、python中与动态规划和排…

网页如何给js后台传递数字类型参数

网页无法通过get方法传递数字参数给js后台&#xff0c;就是网页端写的是数字参数&#xff0c;传递给后台也变成了数字字符串。而js对数字类型和字符串类型是不相同的。由于我们的代码是通过中间件挂载接口的&#xff0c;通过joi库检查参数。 const Joi require(joi); //注意&…

秋招突击——算法打卡——5/28——复习{Z字形变换、两数之和}——新做:{整数反转、字符串转整数}

文章目录 复习Z字形变换实现代码参考代码 两数之和复习代码 新作整数反转个人实现实现代码 参考做法字符串转换整数个人解法 分析总结 复习 Z字形变换 实现代码 这里使用了他的思想&#xff0c;但是没有用他的代码&#xff0c;虽然已经比上次简洁了&#xff0c;但是还是不够&…

【日记】终于鼓起勇气买了吹风机!(356 字)

正文 好忙。今天比昨天还要忙&#xff0c;水都没喝几口。嗯&#xff0c;好像只喝了两口。 今天补了一份印鉴卡&#xff0c;销了一个户&#xff0c;变了一个户&#xff0c;弄了一大堆资料找人签字&#xff0c;还顺带要解决一个押品的历史遗留问题。 中午睡得好香&#xff0c;都不…

如何理解和使用 this 关键字

this 关键字是许多编程语言中的一个核心概念&#xff0c;在面向对象编程&#xff08;OOP&#xff09;中尤为重要。在JavaScript、Java、C、C#等语言中&#xff0c;this 扮演着至关重要的角色。理解 this 的意义和用法&#xff0c;对于编写清晰、有效的代码至关重要。 什么是th…

超分论文走读

codeFormer 原始动机 高度不确定性&#xff0c;模糊到高清&#xff0c;存在一对多的映射纹理细节丢失人脸身份信息丢失 模型实现 训练VQGAN 从而得到HQ码本空间作为本文的离散人脸先验。为了降低LQ-HQ映射之间的不确定性&#xff0c;我们设计尽量小的码本空间和尽量短的Code…

ECS搭建2.8版本的redis

要在ECS&#xff08;Elastic Compute Service&#xff09;上手动搭建Redis 2.8版本&#xff0c;你可以按照以下步骤操作&#xff1a; 步骤1&#xff1a;更新系统和安装依赖 首先&#xff0c;登录到你的ECS实例&#xff0c;确保系统是最新的并安装必要的依赖包&#xff1a; s…

运营推广最容易被忽略的细节!用短链接推广必须要掌握这些要点!

短链接是目前很多企业进行网络推广最常用的方式之一&#xff0c;是引流转化的重要桥梁&#xff0c;很多工作者可能觉得用短链接推广&#xff0c;只需要简简单单的把生成好的短链接放上去就行&#xff0c;但是实际上有很多细节要点是需要着重注意的&#xff0c;今天小编就围绕这…

做外贸怎么给新老客户定价

通常情况下我们对于新客户的关注点要比老客户更多一些&#xff0c;大概是因为新客户的开发周期比较长而且不确定性也很大。 但是对于一些返单的老客户对比来讲&#xff0c;老客户的稳定性就会相对来说增加很多&#xff0c;如果款式规格都是固定的&#xff0c;那么老客户从选品…

[AIGC] Nginx常用变量详解

Nginx非常强大&#xff0c;其主要功能包括HTTP服务器、反向代理、负载均衡等。Nginx的配置中有许多内置的变量&#xff0c;你可以在配置文件中使用这些变量进行灵活的配置。在本篇文章中&#xff0c;我们将介绍一些Nginx中常见的变量&#xff0c;包括proxy_add_header。 常见变…

redis显示RDB error

报错问题&#xff1a;"RDB error" 是指在Redis的RDB持久化过程中出现了错误。Redis的RDB持久化是通过将内存中的数据集快照保存到磁盘中的一种方式。如果在这个过程中遇到问题&#xff0c;Redis会记录一条包含"RDB error"的日志信息。上图错误&#xff0c;…

【论文复现】——基于随机抽样与特征值法的点云平面稳健拟合方法

目录 一、算法原理1、论文概述2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的GPT爬虫。 一、算法原理 1、论文概述 针对点云数据含有异常值且传统拟合方法拟合结果不理想的情况,本文提出…

Go 超时退出

1、使用 time.After() 创建超时退出&chan&select 通过 time.After() 函数创建一个超时通道&#xff0c;当超时发生时&#xff0c;通道会发送一个信号。结合 select 语句&#xff0c;可以在超时时退出程序。 package mainimport ("fmt""time" )…

Java基础语法详解

Java是一种广泛使用的面向对象编程语言&#xff0c;适用于开发跨平台的应用程序。本文将详细介绍Java的基础语法&#xff0c;帮助初学者打好扎实的编程基础。 1. Java程序的结构 一个基本的Java程序通常由类和方法组成。以下是一个简单的Java程序示例&#xff1a; public cl…

软设之算法的效率

算法的效率分为时间复杂度和空间复杂度。 空间复杂度是指对一个算法在运行过程中临时占用存储空间大小的度量。一个算法的空间复杂度只考虑在运行过程中为局部变量分配的存储空间的大小。说白了&#xff0c;就是空间换时间。 比如说计算从123……100的和。一个算法是i(1100)*…

Python二叉树遍历算法

# 定义一棵树结构 class Tree:def __init__(self, value):self.value valueself.left Noneself.right Nonedef zhong(tree, array[]):"""中序遍历:param tree: :param array: :return: """if tree is None:return arrayzhong(tree.left, arra…

FL Studio21.2.5中文版电子音乐制作的强大工具

在当今的数字音乐时代&#xff0c;电子音乐已经成为了全球音乐市场中不可或缺的一部分。越来越多的音乐爱好者开始尝试自己动手创作电子音乐&#xff0c;而FL Studio 21中文版正是为他们量身打造的一款强大工具。作为一个音频制作爱好者&#xff0c;我深知一个好的数字音频工作…

apexcharts数据可视化之雷达图

apexcharts数据可视化之雷达图 有完整配套的Python后端代码。 本教程主要会介绍如下图形绘制方式&#xff1a; 基础雷达图多组数据雷达图雷达图标记点 基础雷达图 import ApexChart from react-apexcharts;export function BasicRadar() {// 数据序列const series [{name…

10分钟掌握FL Studio21中文版,音乐制作更高效!

FL Studio 21中文版是Image Line公司推出的一款深受欢迎的数字音频工作站软件&#xff0c;在音乐制作领域享有盛誉。这个版本特别针对中文用户进行了本地化处理&#xff0c;旨在提供更加便捷的用户体验和操作界面。本次评测将深入探讨FL Studio 21中文版的功能特点、使用体验及…

【计算机网络】P1 计算机网络概念、组成、功能、分类、标准化工作以及性能评估指标

目录 1 什么是计算机网络2 计算机网络的组成2.1 组成部分上2.2 工作方式上2.3 功能组成上 3 计算机网络的功能3.1 数据通信3.2 资源共享3.3 分布式处理3.4 提高可靠性3.5 负载均衡 4 计算机网络的分类4.1 按分布范围分类4.2 按传输技术分类4.3 按照拓扑结构分类4.4 按使用者分类…