首页 > 试题广场 >

字符串的排列

[编程题]字符串的排列
  • 热度指数:5087 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。


输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母,例如ac


输出描述:
[ac, ca]
示例1

输入

acc

输出

[acc, cac, cca]
头像 牛客题解官
发表于 2020-06-05 18:35:54
题解: 考察点:深度优先搜索,回溯,剪枝 易错点: 字符串中的字母有重复,直接使用全排列生成的字符串会有重复,需要通过剪枝或者等手段去重。 方法一:回溯+去重 回溯法是一种深度优先搜索中常用的一种手段,基本思想是首先按选设定条件进行深度搜索,当探索到某一步时,发现原先搜索的路径并不满足,就退回上一步 展开全文
头像 牛客167622957号
发表于 2022-08-13 16:25:30
import itertools str = list(input()) str_arr = set() a = itertools.permutations(str) for i in a: &nb 展开全文
头像 把offer请过来
发表于 2022-04-23 12:33:29
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); ArrayList<Str 展开全文
头像 Emolly
发表于 2022-11-13 16:09:59
import java.util.*; public class Main {     public static Set<String> set=ne 展开全文