这个世界上最爽的事情,就是一次通过编译并且结果正确

本来闲得无聊打算收拾收拾出门射箭,突然有个朋友来问了我个问题。于是顺手做了一下。


17.编写一个字符界面的Java Applicantion程序,接受用户输入的字符,以“#”标志输入的结束:比较并输出按字典序最小的字符

这道题最难的地方大概就是理解什么是字典序。
废话不多说,上代码。

import java.util.ArrayList;

public class Solution {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String strA = "abcd";
        String strB = "njvio";
        String strC = "jkdf";
        String strD = "pidn";
        String strE = "abbc";
        String strF = "abcd";
        ArrayList<String> arr = new ArrayList<String>();
        arr.add(strA);
        arr.add(strB);
        arr.add(strC);
        arr.add(strD);
        arr.add(strE);
        arr.add(strF);
        Solution s = new Solution();
        for (String tmp : s.sortStr(arr)) {
            System.out.println(tmp);
        }

    }

    public ArrayList<String> sortStr(ArrayList<String> arr) {

        for (int i = 0; i < arr.size(); i++) {
            for (int j = 0; j < arr.size(); j++) {

                if (ALessThanB(arr.get(i), arr.get(j))) {
                    String tmp = arr.get(i);
                    arr.set(i, arr.get(j));
                    arr.set(j, tmp);
                }
            }
        }

        return arr;
    }

    private boolean ALessThanB(String A, String B) {

        char[] a = A.toCharArray();
        char[] b = B.toCharArray();
        char[] shorterChar = a.length < b.length ? a : b;
        for (int i = 0, l = shorterChar.length; i < l; i++) {

            if (a[i] < b[i]) {
                return true;
            } else if (a[i] > b[i]) {
                return false;
            } else {
                continue;
            }

        }

        return shorterChar == a;
    }

}

//~output:
//  abbc
//  abcd
//  abcd
//  jkdf
//  njvio
//  pidn

没有写输入模块,因为懒。
嗯,就酱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值