Replace '*'of string
2015-12-30 22:23
225 查看
题目大意:给出一个字符串,该字符串包含若干个'*',每个'*'都可以用0或1替换,输出所有的替换方案。
算法思想:
采用递归,采用索引表示当前遍历字符的位置,如果其等于字符串的长度则输出。如果当前遍历到的字符为'*'则分别用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; }
相关文章推荐
- tar 解压
- 菜鸟猿大战Java之IO系列(一)
- 几种定位方式的总结
- linux:vim-abolish 的安装和使用
- 技术架构选型
- [Javascript] Array methods in depth - indexOf
- 【OpenCV学习笔记】7.4仿射变换warpAffine()
- 【学神-RHEL7】1-28-mariadb数据库自动备份和expect的使用
- LedPedometer-3.注册界面和Android随机生成图片验证码
- ubuntu 14.04 64位 安装Opencv3.1.0 (包含opencv_contrib模块)
- [LeetCode]#6 ZigZag Conversion
- 电子证书 DER vs. CRT vs. CER vs. PEM
- [python]Win7 X64安装python Scrapy【解决windows c++环境】
- css媒体查询之width
- 多线程下载
- JSP中两种include的区别
- 多行文本溢出显示省略号(...)的方法
- Excel Sheet Column Title 把整数转换为大写字母的组合
- 设计模式:工厂方法模式
- 让html文件也具体include包含的功能