最小字典序问题java版

Posted sylzs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最小字典序问题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();
    }
}

 

以上是关于最小字典序问题java版的主要内容,如果未能解决你的问题,请参考以下文章

C - 字典序最小的子序列 51nod1255

HDU 1285 确定比赛名次字典序最小的拓扑排序 + 优先队列

随手练——拼接最小字典序

1625. 执行操作后字典序最小的字符串

python编程题-拼接最小字典序

贪心算法(入门)字典序最小问题&最小覆盖问题