package com.chinahrt.zyn.pango; import java.util.ArrayList; import java.util.List; public class Test { /**求N个字符的全排列 比如:1,2,3 全排列为:123,132,213,231,321,312 startStr,开始字符;str,剩余字符 */ public List<String> getAllString(String startStr,String str){ List<String> list = new ArrayList<String> (); //如果剩余字符串长度为1,返回开始字符串加剩余字符串 if(str.length()==1){ list.add(startStr+str); return list; }else{ char[] charArray = str.toCharArray(); //循环str的每一个字符, for(int i=0;i<charArray.length;i++){ //把charArray的第i个字符作为开始字符,除第i个字符外的所有字符作为剩余字符,递归调用 List<String> newStrList = getAllString(new String(charArray[i]+""),str.replace(new String(charArray[i]+""), "")); //迭代加入每一个字符串 for(String s:newStrList){ list.add(startStr+s); } } return list; } } /** * @param args * Administrator * 2013-2-17 下午5:00:20 */ public static void main(String[] args) { // TODO Auto-generated method stub Test t = new Test(); List<String> list = t.getAllString("", "1234"); for(String str:list){ System.out.println(str); } } }
相关推荐
简单的实现,代码很短。...输入一个字符串,输出它的字符的所有组合的情况 如输入“abc”,则输出abc,acb,bac,bca,cab,cba。 但如果输入“aba”,即有重复的,也会输出aba,aab,baa,baa,aba,aab。
在编程领域,字符串的全排列是一个经典的问题,它涉及到算法和数据结构的知识。在这个问题中,我们被要求找出一个字符串中所有可能的字符排列组合。这个任务通常可以通过回溯算法或者堆栈等方法来实现。这里我们将...
在这个文件中,我们将讨论CC++中生成从1到n的全排列算法,以及字符串的全排列算法。 一、生成从1到n的全排列算法 这个算法的思想是使用递增的方式生成从1到n的所有排列。具体来说,算法的步骤如下: 1. 输入n 2. ...
在编程领域,全排列是一个经典的算法问题,它涉及到数组或字符串的所有可能的顺序组合。当给定一个包含N个不同元素的集合时,全排列就是要列出所有可能的N!(N的阶乘)种排列方式。在这个场景中,我们将探讨如何使用...
本实例将详细阐述一种实现n个数全排列的算法。 全排列算法的基本思想是回溯法,也称为深度优先搜索(DFS)。回溯法是一种试探性的解决问题的方法,当尝试一条路径无法得到正确结果时,会返回上一步,尝试其他可能的...
问题 输入一个字符串,打印出该字符...如果能生成n-1个元素的全排列,就能生成n个元素的全排列。对于只有一个元素的集合,可以直接生成全排列。所以全排列的递归终止条件很明确,只有一个元素时。我们可以分析一下全排
在给定的文件内容中,提供了一个在JavaScript中实现字符全排列算法的简单方法。 具体算法思路是利用递归和正则表达式来实现。首先,函数charsMap接收一个字符串参数o,然后对这个字符串进行处理,去除其中的重复...
在数学上,全排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,称为从n个不同元素中取出m个元素的一个排列。在这个案例中,n=26(因为有26个英文字母),m=5,我们需要找出所有可能的5个字母的...
如果输入123,那么就会输出123,132,213,231,312,321,依次列推
在本篇文章中,我们将通过一个具体的例子来详细介绍如何使用Python语言实现字符串的全排列算法,并深入探讨其中的细节。 #### 二、全排列的基本概念 全排列是指在一个集合中取出所有元素的所有不同排列方式。例如,...
在计算机科学领域,全排列是组合数学中的一个重要概念,它指的是从n个不同元素中取出n个元素,按照一定的顺序排列的所有可能的方式。当n个元素的排列需要按照特定顺序,如字典序(从小到大的顺序)进行时,我们称之...
字符串的全排列和组合算法是计算机科学中的一种基础算法,主要应用于数据处理和问题求解。在本文档中,我们将探讨如何使用C++实现字符串的全排列算法,并讨论如何处理包含重复字符的情况。 首先,全排列是指从一个...
全排列是指从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列的所有可能的方法数。当m等于n时,这就是全排列问题。在易语言中,我们可以使用递归或非递归的方式来实现全排列。 1. **递归实现**: - ...
另一个字符串处理的经典问题是字符串的全排列,即给定字符串S[0…N-1],设计算法枚举S的全排列。解决全排列问题可以使用递归算法或非递归算法。递归算法通常基于分治法的思想,通过逐个交换字符来生成新的排列,保证...
`for`循环遍历从0到`m`的所有值,对每个值`k`,都会调用`pai(str, m+1, n)`,这相当于在当前排列基础上,将下一个位置的字符与剩余字符进行全排列。 - 在每次递归调用之后,调用`chang(str, m)`,将当前排列的最后...
大家都知道对一个字符串进行排列是一个NP难问题,解决起来其实非常简单,只需要进行深度递归,将后面位置的数字或字符与基位置的进行调换,再选择输出即可!
给定一个字符串,全排列的任务是找出所有可能的字符顺序,其中每个字符都恰好出现一次。在本例中,字符串仅包含小写字母,并且长度在2到8之间。 解决全排列问题通常采用递归方法。递归的基本思想是将复杂的问题分解...
全排列是指从n个不同元素中取出m个元素,按照一定的顺序排列的所有可能的组合方式。在本例中,我们讨论的是使用C语言实现的全排列算法,主要关注递归方法。 在C语言中,全排列的实现通常基于回溯法。回溯法是一种...
全排列是指从n个不同元素中取出m个元素(m≤n),按照一定的顺序排列起来的所有可能的排列组合。在这个案例中,我们特别关注输入是三个字符,比如"a"、"b"和"c",程序将输出所有可能的由这三个字符组成的字符串。 ...