计蒜客-有重复元素的排列问题

本文介绍如何使用递归算法解决含有重复元素的字符串排列问题,要求输出的排列按照字典序递增。题目提供输入格式、输出格式及样例,并给出解题思路和递归代码实现。
摘要由CSDN通过智能技术生成

 

  给定一串字典序不递减的字符串,可能含有相同元素。请借助递归设计算法求出该字符串的所有不同排列。请不要借助STL。

输入格式:

  第一行输入一个整数T(小于等于10),代表有T组测试样例。

  接下来T行,每行给定一串字符串(长度小于等于9,且至少有3个字符相同)。

输出格式:

  每行输出一个字符串。按照字典序递增的顺序输出,每个排列占一行。

  最后一行输出不同排列的个数。

提示:

  大量输出,请用printf代替cout,否则会超时。

样例输入:

  1
  aacc

样例输出:

  aacc
  acac
  acca
  caac
  caca
  ccaa
  6

解题思路:

 

  这是一道典型的全排列问题,但是要求字典排序输出,所以这又是一道特殊的全排列问题。代码基本和全排列相同,只需要改动全排列交换的顺序的部分就可以了。全排列问题的讲解如下(递归解决全排列问题

代码如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值