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

美团2015校招研发笔试题——字母排序

时间:2015-03-08 22:50:47      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:

题目来源牛客网: http://www.nowcoder.com/questionTerminal/3c334863c02443cdb61b2d73c1edf071?orderByHotValue=0&query=一组随机排列的字母数组&done=0&pos=9

一组随机排列的字母数组。请编写一个时间复杂度为O(n)的算法,使得这些字母按照字母从小到大顺序排好。

 

说明:字母区分大小写,相同的字母,排序后小写排在大写前。

 

例如:R,B,B,b,W,W,B,R,B,w

排序为:b,B,B,B,B,R,R,w,W,W

1)描述思路(2分)

2)请用你熟悉的编程语言编码实现(8分)

 

Java解答版:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Vector;


public class MyDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println(function("abBBDSXAINiknkDKKKKJJccdDDCC"));
    }

    public static String function(String inputString){
        ArrayList<Character> arrayList=new ArrayList<>();//保存大写字母
        ArrayList<Character> arrayList2=new ArrayList<>();//保存小写字母
        StringBuffer result=new StringBuffer();
        for(int i=0;i<inputString.length();i++){
            if(inputString.charAt(i)<a){//大写字母
                arrayList.add(inputString.charAt(i));
            }else{
                arrayList2.add(inputString.charAt(i));
            }
        }
        Collections.sort(arrayList);
        Collections.sort(arrayList2);
        for(int i=0;i<arrayList2.size();i++){
            result.append(arrayList2.get(i));
        }
        for(int i=0;i<arrayList.size();i++){
            result.append(arrayList.get(i));
        }
        return result.toString();
    }
}


我的android学习经验: http://jingyan.baidu.com/season/48891

美团2015校招研发笔试题——字母排序

标签:

原文地址:http://www.cnblogs.com/BasilLee/p/4322419.html

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