首页 > 其他 > 详细

[蓝桥杯2019初赛]不同子串

时间:2020-02-19 13:41:12      阅读:151      评论:0      收藏:0      [点我收藏+]

题意:一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成的串。
例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。
注意在计算时,只算本质不同的串的个数。
请问,字符串0100110001010001 有多少个不同的非空子串?

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <set>
 4 #include <cstring>
 5 #include <string>
 6 #include <stdio.h>
 7 #define rep(i,a,b) for(int i=(a);i<=(b);++i)
 8 #define per(i,a,b) for(int i=(a);i>=(b);++i)
 9 using namespace std;
10 const int N=1e3+7;
11 typedef long long ll;
12 int main()
13 {
14     string s="0100110001010001";
15     set<string>ans;
16     int len=s.size();
17     rep(i,0,len-1){
18         rep(j,0,len-1){
19             string ss=s.substr(i,j);
20             ans.insert(ss);
21         }
22     }
23     printf("%d\n",ans.size());
24     return 0;
25 }

substr()函数

string s;

s.substr(start,length);

start:字符串的起始位置

            正数:字符串指定位置开始。

            负数:在字符串结尾的指定位置开始。

             0:在字符串的第一个字符处开始。

length:返回字符串的长度,默认是到字符串结尾的位置。

               正数:从规定的起始位置返回。

               负数:字符串结尾末端返回。

返回值:返回字符串的提取部分,失败返回false,或者返回一个空字符串。

[蓝桥杯2019初赛]不同子串

原文:https://www.cnblogs.com/Edviv/p/12330789.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!