求一个字符串中连续出现次数最多的字串.[面试宝典14.5节]

算法导论学习笔记(4)-3种方法求最大连续子串 题目描述: 给出一个数组,里面有正数,有负数,求找出一个连续的子串,使得这个子串的所有的数字的和最大。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 13 -3 -25 20 -3 -16 -23 18 20 -7 12 -5 -22 15 -4 7 阅读详情

首先分清楚什么是子串,比如:abc这个字符串,对应的子串为 a/b/c/ab/bc/abc

如果字符串是abcbcbcabc ,则连续出现次数最多的子串是bc,连续出现的次数为3

关键是连续,看代码可以结合例子来理解


代码如下:

#include <iostream>
#include <vector>
#include<string>
using namespace std;

pair<int ,string> fun(const string &str)
{
	vector<string> substrs;
	int maxcount=1,count=1;
	string substr;
	int i,len=str.length();
	for(i=0;i<len;i++)
	{
		substrs.push_back(str.substr(i,len-i));   //把str字符串中的子串按每次把头部减少一个的方式插入到vector向量中
		cout<<substrs[i]<<endl;//输出vector中的值 如上图
	}
	for(i=0;i<len;i++) //先从第一个子串开始直到所有的遍历完所有的子串
	{
		for(int j=i+1;j<len;j++) //从下一个子串开始 寻找连续出现的子串
		{
			count=1;
			if(substrs[i].substr(0, j-i)==substrs[ j].substr(0, j-i))  //寻找以a开头的子串(对于本题的输入而言)下面依次为b开头的子串,一直到c开头的子串
			{
				++count;
				for(int k=j+(j-i);k<len;k+=j-i)
				{
					if(substrs[i].substr(0, j-i)==substrs[k].substr(0, j-i)) ++count; //如果有连续一个子串出现就继续遍历vector的下一个子串中的和现在出现相同子串的地方的下一个或几个字符
					else   break;
				}
				if(count>maxcount)  //maxcount  记录所有遍历中的最大连续子串出现的次数
				{
					maxcount=count;
					substr=substrs[i].substr(0, j-i);
				}
			}
		}
	}
	return make_pair(maxcount ,substr);   //把maxcount 和 找到的子串做成pair<>返回
}

int main()
{
	pair<int,string> result;
	string str="abcbcbcabc";
	result=fun(str);
	cout<<result.first<<" "<<result.second<<endl; //输出为:2 ab
	return 0;
}


【华为机试真题 JAVA】连续字母-100 给你一个字符串,只包含大写字母,求同一个字母连续出现的最大次数。 阅读详情

相关推荐

FPGA 上的 YOLOv8 实时目标检测:从模型优化到硬件加速全解析

本文全面解析了将YOLOv8目标检测模型部署到FPGA进行硬件加速的完整流程。通过模型裁剪、混合精度量化等优化手段,结合HLS设计专用计算引擎与数据流,实现了高能效比的实时推理。文章深入探讨了软硬协同部署、性能调试与优化技巧,为追求极致实时性与低功耗的边缘AI应用提供了从算法到硬件的实战指南。

weixin_29031161的博客 605

寻找数组中的最大连续子串

数组中的最大连续子数组 暴力,分析法(以一个点固定,减去前面从头开始组成的最小的子数组),动态规划(max=Max(S[i]+a[i+1],a[i+1])) 主要是采用动态规划的方法进行处理,比较简单。 用一个res记录最终结果,表示最大。max为临时的可能的结果。 令a为总数组,也就是你要查找的数组 S代表其中一个子串的加和(假设你已经加到了一定的程度),如果加和加上下一个a[i]还不

qq_36616268的博客 1317

车辆横向控制MPC实战:从‘老王模型’到CasADi求解的保姆级避坑指南

本文详细解析了车辆横向控制MPC的实战应用,从经典动力学模型选择到CasADi求解器的优化配置,提供了一套完整的避坑指南。重点介绍了车辆动力学模型的验证要点、CasADi环境的高效配置技巧以及MPC问题建模的核心要素,帮助开发者快速实现稳健的横向控制方案。

weixin_42524499的博客 346

【C/C++刷题——leetcode】查找字符串中最大的子串

leetcode刷题,刷完这题字符串的题目,可以使你更加充分了解C语言字符串操作和C++ STL 库string类的操作

m0_62599305的博客 1784

分类模型AUC低于0.5?5个常见坑点排查指南(附代码示例)

本文针对分类模型AUC低于0.5的常见问题,提供了5个关键排查点及代码示例。从样本分布失衡、特征与标签脱节到量纲差异、模型初始化和数据泄露,详细解析了可能导致AUC异常的原因,并给出实用的诊断方法和解决方案,帮助开发者快速提升模型性能。

weixin_29190169的博客 239

如何使你的直流电机闭环?(PID讲解)

看了看很多大佬写的PID讲解很全面也很复杂,实在是不适合很多萌新入坑,所以想按自己的理解写一篇通俗易懂的PID算法讲解

a2001444的博客 1万+

寻找最大连续子串和以及寻找最长数字串

'''寻找最大连续子串和''' def find_max_sub_sum(data): if not data: return None sub = data[0] submax = data[0] for i in range(1, len(data)): sub = max(sub+data[i], data[i]) submax = max(submax, sub) r

xqn2017的博客 1018

c语言国际象棋(easyx图形库)

c语言实现的国际象棋,先放源码,有空再更 所有图形资源均来源于网络,侵删 #include <graphics.h> #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> #include <time.h> #define HEIGHT 800 #define WIDTH 1100 #define SIZE 100 #define true.

Betelgeuse13的博客 1914

最大连续子串

问题描述: 给定一个由数字组成的数组,求出和最大的子数组 求解方法: 1.暴力法 选取所有连续和的可能性,O(n^2) 2.分析法 当遍历到第i个元素时,判断在它前面的连续子序列和是否大于0,如果大于0,则以位置i结尾的最大连续子序列和为元素i和前门的连续子序列和相加;否则,则以位置i结尾的最大连续子序列和为元素i。 3.动态规划 记s[i]是以a[i]结尾的最大子数组和 s[i+1]=max(s[i]+a[i+1],a[i+1]) s[0]=a[0]; 遍历数组a[i]即可得到以每一项结尾的最大子数组和s

稚枭天卓 1064

利用XGBoost实现短期电力负荷预测

本数据集为某地区2009年-2015年的用电负荷,时间片为每分钟这里我们定义了XGB模型作为实例,来进行模型训练,之后我们会对其使用网格搜索找到最优的参数。

优快云 精品推荐 4495

【62】OpenCV C++实战篇——【项目实战】OpenCV C++ 精准定位“十字刻度尺”中心坐标,过滤图片中的干扰,精准获取十字交点坐标

本文针对工业相机拍摄的2000万像素图像中十字刻度尺的精确定位问题进行了研究。面对图像较暗、存在红黄干扰、记号笔涂抹及细节模糊等难点,提出了一种基于霍夫变换的解决方案。通过灰度化、反色、二值化预处理后,对比分析了多尺度霍夫直线(HoughLines)和渐进概率霍夫线段(HoughLinesP)两种方法的定位效果。实验结果表明,HoughLinesP由于具有最小线段长度和间隙约束,在直线贴合度和交点定位精度上表现更优,其返回的线段端点坐标也更便于后续处理。该研究为工业视觉中微小目标的精确定位提供了实用参考。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 975

【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现

一、需求描述输入一个字符串,编写程序找出这个字符串中的最长连续字符,并求出其连续出现的次数。例如,“123444445”中的最长连续字符是4,其连续出现的次数为5;“abcddef”中的最长连续字符是d,其连续出现的次数为2;“ab”中的最长连续字符是a,其连续出现的次数为1。 二、算法设计我们可以采取逐个比较字符串中各个字符的办法来获取最长连续字符及其连续出现的次数。程序的总体流程如图1所示。图

周兆熊的专栏 4632

【论文硬核拆解】Ctx2Skill:让大模型自己跟自己玩,从上下文里「进化」出可复用技能

论文选择自然语言技能可解释性:技能是人类可读的 Markdown 文件,可以审查、编辑、调试可迁移性:即插即用,从一个模型到另一个模型无需参数访问:对闭源模型友好这比 SKILL0/SkillRL 等参数内化方法更实用,尤其是在商业 API 场景。

步子哥的博客 154

程序员面试宝典部分面试题

第七章面试例题5 #include using namespace std; class A { public: A(){m_a=1;m_b=2;} ~A(){} private: int m_a; int m_b; }; class B { public: B(){m_c=3;} ~B(){} void fun(){printf("%d\n",m_c);} private: i

理想还是要有的 711

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

面试宝典:字符串基础

内容来自:面试宝典 字符串章节 字符串与数字的相互转换 实现strcopy 求一个字符串中连续出现次数最多的子串 求一个字符串中相同且最长的子串 实现strstr 将一句话中的单词进行倒置,标点符号不变。比如一句话:i come from tiamjin. 倒换后称为 tianjin. from come i 计算从1-n之间的中包含1个个数 转变字符串格式为原来字符...

weixin_30297281的博客 90

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

反转字符串I am a student

//写一个函数,将字符串翻转,翻转方式如下:“I am a student”反转成“student a am I”,不借助任何库函数。 方法是先反转整个字符串,然后再反转字串。譬如先将“I am a student”反转为“tneduts a ma I”,然后再对每个字串(空格分割)反转一次。 算法 1 #include 2 3 void main()

tc216的博客 1315

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

笔试题目“翻转字符串”的实现

笔试题目 //写一个函数,将字符串翻转,翻转方式如下:“I am a student”反转成“student a am I”,不借助任何库函数。 据说这题在笔试或者面试当中,出现的频率非常高。刚好在书上也看到这题,又在博客园看到这题出现了(“发职位经典面试题”)。 作者也提示了,方法是先反转整个字符串,然后再反转字串。譬如先将“I am a student”反转为“tneduts a...

weixin_34162695的博客 214

Java面试宝典

CoreJava 部分: 1.简述一下 java 基本数据类型及所占位数, java 基本数据类型:4 类 8 种 逻辑型:boolean false/true 1byte 文本型:char 2byte 整数型:byte(1byte),short(2byte),int(4byte),long(8byte) 浮点数型:float(4byte),double(8byte) 2. 说出 5 个的启动时异常: RunTimeException |---NullPointerExc.

小鱼儿的博客 192

95后阿里P7晒出工资单:狠补了这个,真香...

最近一哥们跟我聊天装逼,说他最近从阿里跳槽了,我问他跳出来拿了多少?哥们表示很得意,说跳槽到新公司一个月后发了工资,月入5万多,表示很满足!这样的高薪资着实让人羡慕,我猜这是税后的薪资,税...

Java后端技术 404

算法题目及答案整理

整理了面试常见的数据结构与算法: 1、数组 (1)数组增删改查 (2)动态扩容 (3)求众数 --计数法 -- 摩尔投票法 (4)求超过n/3的数字 -- 摩尔投票法 (5)合并有序数组 (6)最小未出现数 (7)三数之和 (8)旋转数组 (9)数组中只出现一次的数字 (10)将数字0移动到数组末尾 (11)存在重复元素 (12)两个数组的交集 (13)递增的三元子序列...

weixin_38316338的博客 218

来说说我暑期找实习的事儿吧(搜狗、百度、网易等公司电面面经)

最近,各大IT公司开始一年一度的校招活动。在昨天,跟百度地图的HR通了电话以后,我去百度地图部门实习的事儿应该定了。每年找实习找工作都是头疼的事儿,玩的是心理战。于此,我整理了一下我的求职经历,希望能够给正在求职路上的同仁们一点帮助。去年经验分享! 先后经历了搜狗,百度,网易,易保,星环等公司等面试,共计14次。其中,电话面试11次,现场面试3次。搜狗数据挖掘部门电话面试1次。百度面试9次,包括商业基础部门4次,3次工程部,1次策略部;百度地图部门4次,历时最长;百度前端(校招)1次。网易新闻媒体部门JA

weixin_70730532的博客 868

求一个字符串中子串连续出现的最大次数

D: 字符串最大表示 Time Limit: 1 s Memory Limit: 128 MB Problem Description 有如下定义,abcn 表示字符串abc重复n次,例如abc2 表示abcabc。 给定一个字符串,求可以被表示的最大n,例如:aaaa最大个数是4,重复子串为a;abababab最大个数...

weixin_30765505的博客 345

求连续子序列和的最大值

问题:连续子序列最大和,其实就是求一个序列中连续的子序列中元素和最大的那个。 最大子序列和是指,给定一组序列,如 [1,-3,2,4,5],求子序列之和的最大值,对于该序列来说,最大子序列之和为 2 + 4 + 5 = 11。 解决方案有很多:1、两个for循环 2 动态规划 3分治算法 4 ...

chenyuezi2033的博客 2803
上一篇: Z数组和螺旋数组
下一篇: 将C++文件间的编译依赖性降至最低【ZZ】
juiceda
博客等级 码龄18年 10粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值