首页 > 编程语言 >C++子串计算

C++子串计算

时间:2024-11-25 22:01:26浏览次数:6  
标签:子串 输出 01 string int C++ 计算 字符串

内存限制:64 MB时间限制:1.000 S

题目描述

给出一个只包含0和1的字符串(长度在1到100之间),求其每一个子串出现的次数。

输入

一行,一个01字符串。

输出

对所有出现次数在1次以上的子串,输出该子串及出现次数,中间用单个空格隔开。按子串的字典序从小到大依次输出,每行一个。

样例输入 复制
10101
样例输出 复制
0 2
01 2
1 3
10 2
101 2

题型:枚举

#include<bits/stdc++.h>
using namespace std;

int main(){
	string s;//建立一个string类型的的字符串
	cin>>s;//输入
	vector<string>a;//建立1个string类型的动态数组
	for(int i=0;i<s.size();i++){//枚举2个元素
		for(int j=1;j<=s.size()-i;j++){
			a.push_back(s.substr(i,j));//插入的同时提取子串
		}
	}
	sort(a.begin(),a.end());//给动态数组里的元素按照字典序排序
	a.erase(unique(a.begin(),a.end()),a.end());//用erase删除unique去重的结果
	for(int i=0;i<a.size();i++){//继续循环遍历
		int sum=0,xb=0;//定义整型的计数器和下标
		while(s.find(a[i],xb)<s.size()){//字符串a里寻找动态数组a[i]和下标
			sum++;//每循环一次sum自加
			xb=s.find(a[i],xb)+1;//将字符串中找到的a[i]和下标的值赋个给下标
		}
		if(sum>1){
			cout<<a[i]<<' '<<sum<<endl;
		}
	}
	return 0;
}

 

标签:子串,输出,01,string,int,C++,计算,字符串
From: https://blog.csdn.net/2301_80959788/article/details/144041382

相关文章

  • Java成员特点与接口的各种关系 牛顿迭代法计算平方根
    1.(1)importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){irrl=newirr();l.method();Scannersc=newScanner(System.in);sc.next();}}(2)publicinterfaceinter{//默认在int前加......
  • 什么是 C++ 中的类型别名和 using 声明? 如何使用类型别名和 using 声明?
    1)什么是C++中的类型别名和using声明?   在C++中,类型别名和using声明都是用于提高代码可读性和可维护性的工具。一、类型别名类型别名是给现有类型起一个新的名字。可以使用`typedef`关键字或者`using`关键字来定义类型别名。1.使用typedef:typedefin......
  • 什么是C++中的Lambda表达式?它的作用是什么?Lambda表达式可以捕获哪些类型的变量?有哪些
    什么是C++中的Lambda表达式?它的作用是什么?C++中的 Lambda 表达式: Lambda 表达式是 C++11 引入的一种匿名函数,可以在需要的地方直接定义并使用。通常的形式是[捕获列表](参数列表) -> 返回类型 { 函数体 }; 作用:简化代码:可以使代码更加简洁紧凑,避免定义单......
  • C++从零到进阶 ①.1顺序结构(例题+讲解)
    例题1 Hello,World!(难度评估:是人就会)❀考察点:基本输出注意:大小写输出标点 ⭐解题代码:#include<bits/stdc++.h>usingnamespacestd;intmain(){ cout<<"Hello,World!";//输出的文字字符等要用“”括起来 return0;} 例题2 A+B(难度评估:简简单单)❀考察点:简单......
  • 计算机是最难的工科吗?
    你见过很多其他专业的跨行从事计算机工作,但是很少看到计算机专业跨到其他专业,这是为什么呢?我们学习计算机的时候,网络上有大量免费的学习资源,只要你能够上网就能观看全球各种名校的计算机课程,优质的学习资料唾手可得。计算机学科是无实验的,我们知道做实验是需要场地......
  • 【C++11】可变参数模板/新的类功能/lambda/包装器--C++
    文章目录一、可变参数模板1、基本语法及原理2、包扩展3、empalce系列接口二、新的类功能1、默认的移动构造和移动赋值2、成员变量声明时给缺省值3、defult和delete4、final与override三、STL中一些变化四、lambda1、lambda表达式语法2、捕捉列表3、lambda的应用4、lamb......
  • C++提高编程-STL(仿函数、方法)
    函数对象函数对象基本概念函数对象\仿函数是一个东西,本质是一个类的对象,这个类的特殊在于重载了函数调用操作符()。因为使用重载()的行为,很像函数调用,所以也叫就成为函数对象或者仿函数。函数对象的使用classMyAdd{public: intoperator()(constint&a,constint&b) {......
  • 计算机毕业设计源码 - jsp+ssm医院挂号网站
    一、项目介绍《医院挂号网站》该系统基于B/S架构,即所谓浏览器/服务器模式,应用jsp+SSM框架技术,选择MySQL作为后台数据库,项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、核心代码介绍视频等。开发语言:Java 框架:ssm 技术:JSP  数据库:mysql5.7 数......
  • 计算机毕设源码定制 - jsp+ssm医疗设备档案管理系统
    一、项目介绍《医疗设备档案管理系统》该系统基于B/S架构,即所谓浏览器/服务器模式,应用jsp+SSM框架技术,选择MySQL作为后台数据库,项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、核心代码介绍视频等。开发语言:Java 框架:ssm 技术:JSP  数据库:mysql......
  • 计算机毕设设计项目- jsp+ssm 药店管理系统
    一、项目介绍《药店管理系统》该系统基于B/S架构,即所谓浏览器/服务器模式,应用jsp+SSM框架技术,选择MySQL作为后台数据库,项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、核心代码介绍视频等。开发语言:Java 框架:ssm 技术:JSP  数据库:mysql5.7 数......