[藍橋杯2019初賽]不同子串


題意:一個字符串的非空子串是指字符串中長度至少為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,或者返回一個空字符串。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM