码迷,mamicode.com
首页 > 其他好文 > 详细

字符串的全排列与组合

时间:2014-10-28 17:56:36      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:排列   组合   递归   

一、字符串的排列

     问题描述:给出一个字符串,请设计一个函数输出所有可能的排列,如abc,可能的排列顺序有abc、acb、bac、bca、cba、cab

     问题分析:要对长度为n的序列进行排序,可以转化为固定第一个的值,再对剩余的n-1个进行排序的问题,可以用递归实现。由于第一个的值可以是任何一个,可用第一个值与其他值依次交换实现。如序列abc可以转化为如下三种情况:

     (1)第一个固定为a,对bc进行排序

     (2)第一个固定为b,对ac进行排序

     (3)第一个固定为c,对ab进行排序

    代码

bubuko.com,布布扣

二、字符串的组合

   问题描述:给出一个字符串,请输出所以可能的组合,如abc的组合有a、b、c、ab、bc、ac、abc


   问题分析:假设长度n-1的字符串的组合已经知道,那么长度n的字符串的组合有如下情况:

    (1)、保持原有组合集不变

    (2)、原有组合集中每个组合后面添加第n个字符,并添加该组合

    (3)、添加一个由第n个字符组成的组合

   额。。。语文水平实在是不咋的,下面举个例子来说明下,如ab原有组合是a、b、ab,那么abc的组合有如下情况

      (1)原有不变:a、b、ab

      (2)每个组合添加第n个字符,在这里都添加了c:ac、bc、abc

      (3)第n个字符组成的集合:c

   所以最终abc的组合有(1)(2)(3)三种情况加起来:a、b、ab、ac、bc、abc、c

代码:

bubuko.com,布布扣

字符串的全排列与组合

标签:排列   组合   递归   

原文地址:http://blog.csdn.net/charmingcui/article/details/40540945

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!