蓝桥杯每日一题002 不同子串(set用法)

题目 

【问题描述】
    一个字符串的非空子串是指字符串中长度至少为1的连续的一段字符组成的串。例如,字符串 aaab 有非空子串 a,b,aa,ab,aaa,aab,aaab,一共 7 个。

注意在计算时,只算本质不同的串的个数。

请问,字符串 0100110001010001 有多少个不同的非空子串?

    这是一道结果填空题,你只需要提交一个能输出正确答案的程序即可。注意:不要输出多余的内容。

答案:

#include <iostream>
#include<string>
#include<set>
using namespace std;
int main()
{
   set<string> strr;
     
   string s="0100110001010001";
   int len=s.length();
   for(int j=2;j<=len;j++){
       for(int i=0;i<=len-j;i++){
          strr.insert(s.substr(i,j));
        }       
   }
   cout<<strr.size()+2;
  // 请在此输入您的代码*/
  return 0;
}

复习一下set的用法:

  • set容器:自动排序,不能重复;二叉树 
  • multiset容器:可重复

1、insert插入 

set<int>s1;
	//只能用insert插入 
	s1.insert(10);
	s1.insert(20);
	s1.insert(20);
	s1.insert(30);
	s1.insert(40);
	printSet(s1);

2、拷贝构造

 把s1的元素值赋到s2,s3里

set<int>s2(s1);
	set<int>s3(s1);
	printSet(s2);

3、整体赋值

set<int>s3;
	s3=s2; 

4、大小

size 

	cout<<"s1.size="<<s1.size()<<endl;

 5、交换

swap 

	s1.swap(s2);

s1与s2交换

6、删除元素

erase 

//删除容器中值为elem(20)的元素
	s1.erase(20);

删除容器中为20的元素

7、查找 

 查找30在哪个位置

find

	//查找
	set<int>::iterator pos=s1.find(30);//返回迭代器(位置) 
	if(pos!=s1.end())
	{
		cout<<"找到元素:"<<*pos<<endl; 
	}

 8、统计30的个数

 count

int num=s1.count(30);
	cout<<"num="<<num<<endl;

9、利用对组返回两个数据

pair<int,int> p1=make_pair(10,40);
	cout<<p1.first<<" "<<p1.second;

pair

不过和set关系不大,另一个知识点

10、改变排序规则(从大到小) 

	//改变set容器的排序规则;指定排序要从大到小
	set<int,MyCompare>s4;
	s4.insert(10);
	s4.insert(20);
	s4.insert(20);
	s4.insert(30);
	s4.insert(40);
	for(set<int,MyCompare>::iterator it=s4.begin();it!=s4.end();it++)
	{
		cout<<*it<<" ";
	}

 

class MyCompare
{
	public:
		bool operator()(int v1,int v2)//1重载符号2函数体参数列表 
		{
			return v1>v2;
		}
};

 s.substr()

string中的一个函数

substr有2种用法:
假设:string s = "0123456789";

string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789"

string sub2 = s.substr(5, 3); //从下标为5开始截取长度为3位:sub2 = "567"

 

相关推荐

  1. 每日:统计矩阵

    2024-01-22 17:46:01       19 阅读
  2. 2019年第十届省赛真-不同

    2024-01-22 17:46:01       25 阅读
  3. 每日(python)

    2024-01-22 17:46:01       38 阅读
  4. 每日(BFS)

    2024-01-22 17:46:01       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-22 17:46:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-22 17:46:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-22 17:46:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-22 17:46:01       20 阅读

热门阅读

  1. js 递归

    2024-01-22 17:46:01       38 阅读
  2. 每日一道编程题:niven 数

    2024-01-22 17:46:01       31 阅读
  3. 设计类标书制作方法

    2024-01-22 17:46:01       31 阅读
  4. 常用的Qt开源库分享

    2024-01-22 17:46:01       30 阅读
  5. LeetCode 211.添加与搜索单词 - 数据结构设计 题解

    2024-01-22 17:46:01       42 阅读
  6. vue 一键换肤

    2024-01-22 17:46:01       36 阅读
  7. Python经典例题20道

    2024-01-22 17:46:01       41 阅读
  8. Hive之set参数大全-11

    2024-01-22 17:46:01       31 阅读
  9. PiflowX组件-PostgresCdc

    2024-01-22 17:46:01       33 阅读
  10. 柠檬微趣面试准备

    2024-01-22 17:46:01       34 阅读