1、蓝桥杯 - 字符排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sword_anyone/article/details/89071052

算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况


package exe1_5;

import java.util.Scanner;

public class Exe1 {
	
	static int count=0;
	
	public static void main(String[] args) {
		Scanner  scanner = new Scanner(System.in);
		String   string = scanner.nextLine();
		
		String[]  strspl = string.split(" ");
		dfs(strspl,0);
		System.out.println(count);
	}

	private static void dfs(String[] strspl, int begin) {
		if (begin>=strspl.length) {
			show(strspl);
			count++;
			return ;
		}
		for (int i = begin; i < strspl.length; i++) {
			swap(strspl,i,begin);
			dfs(strspl, begin+1);
			swap(strspl, i, begin);
		}
	}

	private static void show(String[] strspl) {
		for(String s:strspl)
			System.out.print(s+"\t");
		System.out.println();
	}

	private static void swap(String[] strspl, int i, int begin) {
		String temp = strspl[i];
		strspl[i]  = strspl[begin];
		strspl[begin] = temp;
	}

}


支付宝扫红包,让我能够买杯咖啡,继续创作,谢谢大家!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sword_anyone/article/details/89071052