最小字典序问题java版
例 输入 6 ACDBCB
输出 ABCBCD
package greedy; import java.util.Scanner; /** * 贪心算法第一个。字典序最小问题 * 从S的头或者尾取出一个元素插入到T空的尾部使得T的字典序最小 * 输入一个整数代表字符串的长度 输入一个字符串; * 输出 正确的排序 */ public class Greedy01 { public static void main(String[] args) { int sum;//字符串的长度 Scanner sca=new Scanner(System.in); // sum=sca.nextInt(); sum=6; char []array=new char[sum]; String str=sca.next(); array=str.toCharArray();//获取到字符串T并且转化为数组 int a=0; int b=sum-1; while(a<=b){ boolean left=false; for(int i=0 ;a+i<=b;i++){ if(array[a+i]<array[b-i]){ left=true; break; } if (array[a + i] > array[b-i]) { left=false; break; } } if (left) System.out.print(array[a++]); else System.out.print(array[b--]); } System.out.println(); } }