gungorbasa
BAN USERint main() {
string s = "01?0?";
vector<string> results;
vector<int> indexes;
results.push_back(s);
for (int i = 0; i < s.size(); i++) {
if (s[i] == '?') {
indexes.push_back(i);
}
}
wild_char_fillup(results, indexes);
for (int i = 0; i < results.size(); i++) {
cout << results[i] << endl;
}
}
void wild_char_fillup(vector<string> &results, vector<int> &indexes) {
for (int i = 0; i < indexes.size(); i++) {
int size = results.size();
for (int j = 0; j < size; j++) {
string str = results[0];
results.erase(results.begin());
str = replace(str, indexes[i], '0');
results.push_back(str);
str = replace(str, indexes[i], '1');
results.push_back(str);
}
}
}
string replace(string str, int index, char c) {
str[index] = c;
return str;
}
- gungorbasa May 08, 2015
C++11 version
}
- gungorbasa May 09, 2015