码迷,mamicode.com
首页 > 编程语言 > 详细

最小字典序问题java版

时间:2019-04-12 23:10:35      阅读:393      评论:0      收藏:0      [点我收藏+]

标签:--   int   tin   for   字符串   new   print   lse   算法   

  例 输入  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版

标签:--   int   tin   for   字符串   new   print   lse   算法   

原文地址:https://www.cnblogs.com/sylzs/p/10699080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!