`

用递归输出12234的不同组合

阅读更多
面试的时候一道编程题,12234所有的不同排列方式,回来才考虑用递归这么做

package com.su.reflect;

import java.util.Set;

/**
*
* @author su
*/
public class NewClass {
    public static void main(String args[]) {
       String str = "12234";
       char[] strArray = str.toCharArray();
       Set set = new HashSet();
       permute(strArray, 0, strArray.length - 1,set);

       
    }
    void permute(char[] list, int low, int high, Set set) {
        int i;
        if (low == high) {

            String cout = "";
            for (i = 0; i <= high; i++) {
                cout += list[i];
            }
            if (set.add(cout)) {
                System.out.println(cout);
            }

        } else {
            for (i = low; i <= high; i++) {
                char temp = list[low];
                list[low] = list[i];
                list[i] = temp;
                permute(list, low + 1, high, set);
                temp = list[low];
                list[low] = list[i];
                list[i] = temp;
            }
        }
    }
}
分享到:
评论

相关推荐

    排列组合一个练习以及递归输出排列的PPT

    排列组合一个练习以及递归输出排列的PPT

    基于hadoop用并行递归实现排列组合运算

    数字排列组合是个经典的算法问题,它很通俗易懂,适合不懂业务的人...这种算法常用递归或迭代来实现,单当M=14时,中间结果数量已经过亿,再大的话很容易超过单台机器的处理能力,所以我用hadoop来实现多机分别处理。

    C#实现排列组合算法完整实例

    其实排列实现了,组合也就实现了,组合C(N,R)就是P(N,R)/P(R,R) ,实现这一功能比较简单的是递归算法,但考虑到递归的性能,下面采用了2种非递归的方法,具体代码如下 using System; using System.Collections....

    C++使用递归算法求交错幂集

    交错幂集是一种数学概念,...函数使用递归方式计算集合S的长度为k的交错幂集,并返回结果。在递归过程中,通过跳过第k个元素来避免重复组合。在主函数中,我们调用computePermutations函数来计算交错幂集,并输出结果。

    递归实现n重循环

    使用递归实现N重循环,这里的N是不确定的。 此代码实现的功能描述如下: 1. 有一个字符串的矩阵,用vector&lt; vector&lt; CStirng &gt; &gt; 表示 2. 行与行之间进行排列组合 3. 输出所有组合的方式

    递归写电话助记词

    本程序利用近似递归来写电话簿中的助记词,输入三个数字得出所有组合

    问题描述:求从1~n的正整数中取出k(k<=n)个不重复整数的所有组合.pdf

    分析:求解k个数的不同组合,我们可以用一维数组a[0]~a[k-1]来保存其中的一个结果,因为组合元 素是不重复的,可以约定其递增排列,因为数组中的元素是递增排列的: 所以a[k-1]即组合中的最后一个数,只能为k~n 令i=...

    组合排列组合排列组合排列组合排列

    只需改变里面一处数据,就可以根据自己需要,执行输出n个数中取m个数的所有组合。

    数字的排列组合,可以根据需要推广到其他场面

    我得意之作,采用递归实现。排列组合。希望对大家有用。@TTgdz

    python二进制求组合数,且输出每种组合

    用于二进制求组合数,比起递归更加高效,如果py文件运行不了请联系我拿TXT文件

    Java递归求解数组里“数组合”

    题目要求如下:  给定一个字符串数组,数组中的元素...  解题思路,本题可以考虑使用循环递归的算法:  以下代码仅供参考  import java.util.ArrayList;  import java.util.LinkedList;  import java.util.

    输出n个字符的全排列(没有重复字符)

    简单的实现,代码很短。...输入一个字符串,输出它的字符的所有组合的情况 如输入“abc”,则输出abc,acb,bac,bca,cab,cba。 但如果输入“aba”,即有重复的,也会输出aba,aab,baa,baa,aba,aab。

    输出n个数字的全排列(可重复)

    如:n=3 全排列的数字为 1 2 3 则输出 123 132 213 231 321 312 2、输入n和k(n》=k)求n个数字的(n,k)排列 如n=3,k=2 输入的三个数位1 2 3 则输出 12 13 21 23 31 32 3、输入n个数(有重复),求n个数字的...

    C#输出不重复数字源码

    在论坛经常看到有人问起这个问题,于是用C#做了个现成的。采用递归算法,输出由0-9数字组成不重复8位组合,可定义输出个数。

    C++信息学奥赛一本通1317深搜题解

    现要求你用递归的方法输出所有组合。 例如n=5,r=3,所有组合为: 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 【输入】 一行两个自然数n、r(1,1≤r≤n)。 【输出】 所有的组合,每一个...

    递归回溯深度优先搜索DFS练习题(含C++源码)

    # 递归回溯深度优先搜索DFS算法练习题 C++ 含源码 包含题目:《过河卒》《出栈序列统计》《算24点》《冗余依赖》《走迷宫》《单项双轨道》《组合的输出》《售货员的难题》《驾车旅游》《关路灯》

    程序员面试题精选-输出一个字符串的所有子串

    初看到这道题的时候,就感觉很熟悉,在高中的时候,经常要算这种组合有多少个,当时我们计算的方法顺序是这样的:3+2+1 即 a,b,c,d, ab,bc,cd, abc,bcd, abcd。 假如我们按照这种思路去写程序的话,你...

    Python100道经典练习题,建议收藏.pdf

    实例021:猴⼦偷桃 实例022:⽐赛对⼿ 实例023:画菱形 实例024:斐波那契数列II 实例025:阶乘求和 实例026:递归求阶乘 实例027:递归输出 实例028:递归求等差数列 实例029:反向输出 实例030:回⽂数 实例031:...

    字符串的组合算法问题的C语言实现攻略

    同样,本题也可以用递归的思路来求字符串的组合。 假设我们想在长度为n的字符串中求m个字符的组合。我们先从头扫描字符串的第一个字符。针对第一个字符,我们有两种选择:第一是把这个字符放到组合中去,接下来我们...

    python求一个字符串的所有排列的实现方法

    方法:递归法 以字符串 abc 为例介绍对字符串进行全排列的方法。 (1) 首先固定第一个字符 a,然后对后面的两个字符 b、c 进行全排列; (2) 交换第一个字符与其后面的字符,即交换 a 与 b,然后对后面的两个字符 a与...

Global site tag (gtag.js) - Google Analytics