您的位置:首页 > 其它

Replace '*'of string

2015-12-30 22:23 225 查看
题目大意:给出一个字符串,该字符串包含若干个'*',每个'*'都可以用0或1替换,输出所有的替换方案。

算法思想:

采用递归,采用索引表示当前遍历字符的位置,如果其等于字符串的长度则输出。如果当前遍历到的字符为'*'则分别用0或1替换然后递归的输出所有可行方案,否则不进行替换递归寻找可行方案。

代码如下:

#include <iostream>
#include <string>
using namespace std;

class Solution{
public:
void replace(string &s){
if(s.size()==0) return ;
replaceStr(s,0);
}
void replaceStr(string &s,int index){
if(index==s.size()){
cout<<s<<endl;
return ;
}
if(s[index]=='*'){
s[index]=1+'0';
replaceStr(s,1+index);
s[index]='0';
replaceStr(s,1+index);
s[index]='*';
}
else
replaceStr(s,1+index);
}

};

int main(){
Solution a;
string s="abc*d*e*f";
a.replace(s);
cout<<s<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: