#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
map<string, int> fun(const string &str)
{
vector<string> substrs;
int maxcount = 1, count = 1;
string substr;
int i, len = str.length();
map<string, int> map_SubCount;
// 把str字符串中的子串按每次把头部减少一个的方式插入到vector向量中
// 即,获取原字符串的后缀数组,并保持原来的顺序不变
for(i=0; i<len; ++i)
{
substrs.push_back(str.substr(i, len-i));
}
// 打印出后缀数组,substrs[]
cout<<"#############################################"<<endl;
for(i=0; i<len; ++i)
{
cout << substrs[i] << endl;
}
cout<<"#############################################"<<endl;
// 从后缀数组的第一个元素,开始遍历,依次进行比较
for(i=0; i<len; ++i)
{
// 后缀数组中substrs[i]之后的元素依次与substrs[i]比较
for(int j=i+1; j<len; ++j)
{
count = 1;
// 如果前j-i个元素相同
// 如果有连续一个子串出现就继续遍历vector的下一个子串中的和现在出现相同子串的地方的下一个或几个字符
if(substrs[i].substr(0, j-i) == substrs[j].substr(0,j-i))
{
++count;
// 子串中前j-i个元素相同
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;
else
break;
}
// 记录所有遍历中的最大连续子串出现的次数
if(count >= maxcount)
{
maxcount = count;
substr = substrs[i].substr(0, j-i);
map_SubCount.insert(make_pair(substr, maxcount));
}
}
}
}
return map_SubCount;
}
int _tmain(int argc, _TCHAR* argv[])
{
map<string, int> rs;
string str="abababababaccccc";
rs = fun(str);
map<string,int>::iterator iter = rs.begin();
for ( ;iter != rs.end(); iter++)
{
cout << iter->first <<':'<< iter->second <<'\n';
}
system("pause");
return 0;
}相关推荐
Ubuntu环境下读取罗技G29方向盘信息
Ubuntu环境下读取罗技G29方向盘信息
Golang字符串中子串的出现次数
【代码】Golang字符串中子串的出现次数。
DM9000有线网卡驱动编写
DM9000有线网卡驱动编写 1.DM9000简介 DM9000 是一款完全集成的、性价比高、引脚数少、带有通用处理器接口的单芯片快速以太网控制器。 自 带一个 10/100M PHY 和 4K 双字的 SRAM ,DM9000A 为适应各种处理器提供了 8 位、16 位数据接口访问 内部存储器,DM9000 拥有自动协商功能,DM9000 特性如下: 1.集成自适应 10/100M 收发器。 2.内置 16k 字节的 SRAM。 3.支持硬件帧校验。 4.兼容 3.3V 和 5.0V
go 实现统计用户输入的字符串的重复个数
package main import "fmt" //1.定义一个数组可以存放20个元素 //2.for循环依次接收用户输入的信息存放到arr这个数组 //3.定义额map key为byte value为int //4.for循环将arr的元素的值当中key存入map,value自加1 格式{a:3} //5.遍历map中的数据 func main() { var arr [20]byte for i := 0; i < len(arr); i++ { fmt.Scanf("%c",&a
unity从3D升级到urp管线,打包ab包后,材质全部变紫色
确保材质中的被转换为 URP 兼容的着色器。在打包 AssetBundle 时,确保所需的着色器被正确打包。确保运行 AB 包的目标项目中正确配置了 URP 渲染管线。如果加载后材质丢失,检查 AB 包的加载逻辑,确保材质正确应用了着色器。通过这些步骤,你应该能够解决从标准渲染管线切换到 URP 渲染管线后,材质在 AB 包中变紫色的问题。如果问题仍然存在,请根据具体错误日志进一步排查。希望如上措施及解决方案能够帮到有需要的你。
非机动车闯红灯检测与自动录像系统实战(YOLO+追踪+红绿灯感知)
本文聚焦非机动车(如电动车、自行车)闯红灯行为的智能识别系统构建,结合 YOLO 检测模型、追踪算法(如 DeepSORT)、红绿灯状态感知与区域判断逻辑,构建完整的违章行为识别与证据录像系统。文章涵盖数据采集、模型选型、红绿灯触发机制、闯红逻辑判定、视频自动保存等核心环节,辅以 Jetson/RK3588 平台部署与工程实测,适用于城市交通监控、智慧路口管控等真实场景。
Golang求解:无重复字符的最长子串
前言 题目来源LeetCode,这里记录下当初解答问题的思路,也供学习的同行一个思路。 题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s = “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s = “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: s = “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wk
Vue+OpenLayers7入门到实战目录,OpenLayers7中文文档,OpenLayers7中文手册,OpenLayers7中文教程,OpenLayers7文档pdf
本篇作为《Vue+OpenLayers7入门到实战》所有文章的二合一汇总目录,方便查找。本专栏源码是由OpenLayers7.x版本结合Vue框架编写。本专栏从Vue搭建脚手架到如何引入OpenLayers7依赖的每一步详细新手教程,再到通过各种入门案例和综合性的实战案例,带领大家快速上手Vue+OpenLayers7开发。
Golang面试考题记录 ━━ 字符串中的第一个唯一字符 ,拓展:ASCII和strings字符串查找的用法
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
Spring AI Alibaba 1.x 源码分析-架构设计
本文通过分析Spring AI Alibaba 框架的源码,分析出其原理和架构设计,无论是用于项目开发、技术评估还是团队培训都具有重要价值。
【Unity引擎技术整合】 Unity学习路线 | 知识汇总 | 持续更新 | 保持乐趣 | 共同成长
本文对Unity引擎的知识进行了一个整理总结,基本包含了Unity中大部分的知识介绍。 网上也有很多Unity相关的学习资料,但大多数都不成体系,学起来的时候难免会东奔西走的摸不着头脑。 本文整理的多数文章都是有对应的系列性文章专栏,可以更方便的进行系统学习相关知识体系。
go语言实现无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 从字符串零位置开始,如果不重复则end++,扩大子串,遇到重复则计算长度,如果比前一个子串长,则记录, 否则忽略,然后从最近一个出现重复字符的位置的下一个位置开始(sta...
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
求一个字符串中连续出现最多的子串次数
求一个字符串中连续出现最多的子串次数
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
求一个字符串连续出现次数最多的子串
题目:求一个字符串出现次数最多的子串。
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
求一个字符串中连续出现的次数最多的子串
思路:先建立一个后缀数组,再根据这个后缀数据求得重复子串 题目描述:求一个字符串中连续出现的次数最多的子串。例如字符串“abababc”,最多连续出现的为ab,连续出现三次。要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复子串为abab。两个题目的解法有些类似,都用到了后缀数组这个数据结构。求一个字符串中连续出现的次数最多的子串,首先生成后缀数组例如上面的字符串为:
求一个字符串中连续出现次数最多的子串【转】
问题描述:求一个字符串中连续出现次数最多的子串,子串的长度可以是 1 。分析问题:乍一看,好像无处下手。简单的穷举效率太低,随着输入的文本增长,时间复杂度和空间复杂度就会火箭般窜升至无法接受的地步。我们需要寻找规律。假设存在一个长度为 N 的子串 S 出现的次数最多。那么它具有哪些特点呢?S 的任一子串的出现次数不少于 S 的出现次数 S 中不会出现
3475



被折叠的 条评论
为什么被折叠?



