zoukankan      html  css  js  c++  java
  • 字符串的排列

    题目描述

    输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 
    输入描述:
    输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。

     1 class Solution {
     2 public:
     3     void Permutation(string str,int begin,int end,vector<string>& result)
     4     {
     5         if (begin > end)
     6         {
     7             result.push_back(str);
     8             return;
     9         }
    10         for (int i = begin ; i <= end ; ++i)
    11         {
    12             if(str[begin] != str[i] || begin == i)
    13             {
    14                 char tem = str[begin];
    15                 str[begin] = str[i];
    16                 str[i] = tem;
    17                 Permutation(str,begin+1,end,result);
    18                 tem = str[begin];
    19                 str[begin] = str[i];
    20                 str[i] = tem;
    21             }
    22         }
    23     }
    24     vector<string> Permutation(string str) {
    25         vector<string> reslut;
    26         if (str.length() == 0)
    27             return reslut;
    28         Permutation(str,0,str.length()-1,reslut);
    29         std::sort(reslut.begin(),reslut.end());
    30         return reslut;
    31     }
    32 };
  • 相关阅读:
    elk6.3 centos集群搭建 head插件安装
    10.2半群,同余关系,半群直积,商半群
    10.1代数结构
    9.4 关系的闭包
    9.5 等价关系
    9.6偏序关系
    9.3 关系的表示
    9.1 关系及关系性质
    差分数组
    拓扑排序
  • 原文地址:https://www.cnblogs.com/xiaoyesoso/p/5157922.html
Copyright © 2011-2022 走看看