一 问题描述
商店经理按货物标签的字母顺序对各种货物进行分类,将所有拥有同一字母开头标签的货物存储在同一个仓库中,并用该字母标记。经理收到并登记从商店发出的货物订单,每个订单只需要一种货物,商店经理按照预定的顺序处理请求。请计算经理访问仓库的所有可能方式,以便在一天中一个接一个地解决所有需求。
输入:输入包含一行,其中包含所需货物的所有标签(随机排列)。对每种货物都用标签的起始字母表示,只使用英文字母表的小写字母。订单数量不超过200个。
输出:输出将包含商品经理可以访问其仓库的所有可能订单。对每个仓库都用英文字母表中的一个小写字母表示——货物标签的起始字母。仓库的每个排序在输出文件中只在单独的行上写入一次,并且包含排序的所有行必须按字母顺序排序。任何输出都不会超过2MB字节。
输入样例
bbjd
输出样例
bbdj
bbjd
bdbj
vdjb
bjbd
dbbj
dbbj
djbb
jbbd
jbdb
jdbb
二 算法分析
其实就是按顺序输出字符串的全排列。
三 实现
package collection;
import java.util.*;
public class PermutationDemo<T extends Comparable> {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.