zoukankan      html  css  js  c++  java
  • 输出一个字符串的组合

    #include<iostream>
    #include<vector>
    using namespace std;
    
    void combination(const char str[],int num,vector<char> &result);
    
    void combination(const char str[])
    {
        if(str == NULL)
            return;
        int len = strlen(str);
        int i=0;
        vector<char> result;
        for(i=1; i<=len; i++)
            combination(str,i,result);
    }
    
    void combination(const char str[],int num,vector<char> &result)
    {
        if(NULL == str)
            return;
        if(num == 0)
        {
            vector<char>::iterator it;
            for(it=result.begin(); it!=result.end(); it++)
                cout<<*it;
            cout<<endl;
            return;
        }
    
        if(*str=='\0')
            return;
    
        int i = 0;
        int len = strlen(str);
        //choose the current element
        result.push_back(*str);
        combination(str+1,num-1,result);
        result.pop_back();
        //not choose
        combination(str+1,num,result);
        
    }
    
    int main()
    {
        char str[100];
        while(cin>>str)
        {
            combination(str);
        }
        
        return 0;
    }
    多学习,多总结。
  • 相关阅读:
    vijos1776:关押罪犯
    vijos1774:机器翻译
    vijos1775:乌龟棋
    vijos1792:摆花
    vijos1100:加分二叉树
    vijos1706:舞会
    单调栈
    bzoj1677:求和
    bzoj1340: [Baltic2007]Escape逃跑问题
    bzoj4716: 假摔
  • 原文地址:https://www.cnblogs.com/yanhaiming/p/2958318.html
Copyright © 2011-2022 走看看