问题是找到给定字符串中的所有可能的子字符串。
我知道这个问题有点类似于此。
Generate all unique substrings for given string
但我是靠自己尝试的。我已经生成了所有可能的组合,但问题是我想要消除一些带有空格的字符串。
int main()
{
int t;
cin>>t;
while(t>0){
long long int n;
cin>>n;
string S;
cin>>S;
for(int i=1; i<=S.size(); i++) {
for(int j=0; j<=S.size()-1; j++) {
cout<<S.substr(j,i)<<endl;
}
}
t--;
}
return 0;
}
输入:
1
3
abb
实际产量:
a
b
b
ab
bb
b
abb
bb
b
预期产量:
a
b
b
ab
bb
abb
正如您所看到的,其中有一些带有空格的术语,我想在实际输出中消除第6,8和9个术语。
来自std::string::substr
的文档
子字符串是对象的一部分,从字符位置pos开始并跨越len字符(或直到字符串的结尾,以先到者为准)。
你误解了std::string::substr
的第二个参数是结束位置,但事实上它是第一个参数的偏移量。