问题是找到给定字符串中所有可能的子字符串。
我知道这个问题与此类似。
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个术语。
答案 0 :(得分:0)
摘自std::string::substr
子字符串是对象的一部分,从字符位置pos开始,跨度为一个字符(或直到字符串结尾,以先到者为准)。
您误以为std::string::substr
的第二个参数是结束位置,但实际上它是第一个参数的偏移量。