给定字符串"www.baidu.com" ,求所有不重复的非空子串,C++代码如下:
#include <iostream>
#include <set>
#include <vector>
#include <sstream>
#include <iterator>
#include <algorithm>
using namespace std;
void get_substrs(const string &str,set<string> &substrs)
{
vector<string> vec;
int i;
for (i = 0; i < str.size(); i++) {
vec.clear();
copy(substrs.begin(),substrs.end(),back_inserter(vec));
vector<string>::iterator itr;
for (itr = vec.begin(); itr != vec.end(); itr++) {
substrs.insert(*itr + str[i]);
}
stringstream stream;
stream << str[i];
substrs.insert(stream.str());
}
}
int main() {
set<string> substrs;
get_substrs("www.baidu.com",substrs);
set<string>::iterator itr;
for (itr = substrs.begin(); itr != substrs.end(); itr++) {
cout << *itr << endl;
}
cout << "=====total " << substrs.size() << " records=====" << endl;
return 0;
}