题目来源:蓝桥杯2019初赛 Java B组B题
题目描述
一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成的串。
例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。
注意在计算时,只算本质不同的串的个数。
请问,字符串0100110001010001 有多少个不同的非空子串?
问题分析
用枚举法来实现。
取出所有的子串,放入集合中,统计集合元素的数量。
AC的C++语言程序如下:
/* LQ0095 不同子串 */
#include <iostream>
#include <set>
using namespace std;
int main()
{
string s = "0100110001010001";
set<string> st;
for (int i = 0; i < s.length(); i++)
for (int j = 1; j <= s.length(); j++)
st.insert(s.substr(i, j));
cout << st.size() << endl;
return 0;
}
版权声明:本文为tigerisland45原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。