zoukankan      html  css  js  c++  java
  • (Java实现) 洛谷 P1691 有重复元素的排列问题

    题目描述
    设R={r1,r2,……,rn}是要进行排列的n个元素。其中元素r1,r2,……,rn可能相同。使设计一个算法,列出R的所有不同排列。

    给定n以及待排列的n个元素。计算出这n个元素的所有不同排列。

    输入输出格式
    输入格式:
    第1行:元素个数n(1<=n<500)

    第2行:一行字符串,待排列的n个元素

    输出格式:
    计算出的n个元素的所有不同排列,最后一行是排列总数。

    输入输出样例
    输入样例#1:
    4
    aacc
    输出样例#1:
    aacc
    acac
    acca
    caac
    caca
    ccaa
    6

    说明
    输出按字典顺序排

    import java.util.Scanner;
    
    public class youchongfuyuansudepailiewenti {
    	public static int[] f;
    	public static int[] a;
    	public static char[] str;
    public static int count=0,n=0;
    	public static void main(String[] args)  {
    		Scanner sc = new Scanner(System.in);
    		 n = sc.nextInt();
    		 String s = sc.next();
    		sc.close();
    		f = new int[27];
    		a = new int[501];
    		str = s.toCharArray();
    		for (int i = 0; i < n; i++) {
    			f[str[i] - 96]++;
    		}
    		dfs(1);
    		System.out.println(count);
    	}
    	public static void dfs(int step){
    		if (step==n+1) {
    			count++;
    			for (int i = 1; i <= n; i++) {
    				System.out.print((char)(a[i]+96));
    			}
    			System.out.println();
    			return;
    		}
    		for (int i = 1; i <=26; i++) {
    			if(f[i]>0){
    				a[step]=i;
    				f[i]--;
    				dfs(step+1);
    				f[i]++;
    			}
    		}
    	}
    
    }
    
    
  • 相关阅读:
    发送邮件时,报错:AttributeError: 'list' object has no attribute 'encode'
    快速统计字符出现次数
    vscode快捷键
    win7系统部署django项目
    记录一个小问题,django+Apache+win7,启动Apache后,打开网页,一直转圈圈,停不下来
    django ORM 按月分组统计
    哈希表的应用
    查找算法
    递归的应用
    递归
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12948825.html
Copyright © 2011-2022 走看看