/*
题目:
给定不含重复字符字符串的全组合。
*/
/*
思路:
递归法。
例给定abc,输出的组合长度为1,2,3.
对于长度为2的组合,分选择a(ab,ac)和不选择a的情况(bc)。
选择a,则在剩余字符串中选择长度为1的字符组合;
不选择a,则在剩余字符串中选择长度为2的字符组合。
*/
#include<iostream>
#include<stdio.h>
#include<string> using namespace std; string curr; void combination(string str,int len,int beginIndex){
//当遍历到字符串的末尾,但所需长度不够,直接返回。
if(beginIndex == str.size() && len != 0){
return;
}
//当长度足够,则输出当前字符串。
if(len == 0 ){
cout<<curr<<" ";
}else{
//选择当前字符串的情况
curr+=(str[beginIndex]);
combination(str,len-1,beginIndex+1);
//不选择当前字符串的情况
curr.erase(curr.size()-1);
combination(str,len,beginIndex+1);
}
} int main(){
string str;
while(getline(cin,str)){
if(str == "")
cout<<endl;
else{
for(int len = 1; len <= str.size(); len++){
combination(str,len,0);
cout<<endl;
} } } }

  

最新文章

  1. js get browser vertion (js获取浏览器信息版本)
  2. RMB转换人民币大小金额
  3. Cube Stacking
  4. SmartZoneOCR识别控件免费下载地址
  5. Eclipse的中文字体设置
  6. centos在yum install报错:Another app is currently holding the yum lock解决方法
  7. 解决高版本 Google Chrome 扩展程序强制停用问题 -摘自网络
  8. Enterprise Architect使用教程
  9. CSS3新特性罗列
  10. ARCGIS切图:TPK文件的空间参考为地理坐标系
  11. 拾人牙慧篇之———QQ微信的第三方登录实现
  12. Django2 Django MTV模板
  13. VMware虚拟机安装Linux系统后IP配置(二)
  14. [MicroPython]TurnipBit开发板DIY自动浇水系统
  15. SharePoint Framework 基于团队的开发(一)
  16. C#生成真值表
  17. BZOJ.4894.天赋(Matrix Tree定理 辗转相除)
  18. Scalable MySQL Cluster with Master-Slave Replication, ProxySQL Load Balancing and Orchestrator
  19. 如何使用ASP.NET开发基于推技术的聊天室?
  20. e796. 设置JSlider的方向

热门文章

  1. 漏洞利用:验证绕过,XSS利用,Cookic盗用,文件上传
  2. kvm实现快速增量盘模式的克隆脚本
  3. windows系统快速安装pytorch的详细教程
  4. Linux密码策略--设置随机密码
  5. 行人重识别和车辆重识别(ReID)中的评测指标——mAP和Rank-k
  6. 我的一个配置redux(实现一次存储与调用方法)之旅
  7. Go语言实现:【剑指offer】按之字形打印二叉树
  8. 某oa系统的审计
  9. Thread Based Parallelism - Thread in a Subclass
  10. ajax 解决中文乱码问题