题目
有n个正整数(n<=20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213。
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613。
输入
n
n个数,0
3
13 312 343
输出
连接成的多位数。
34331213
解题思路
这题就是排序问题,只不过是以字符串的形式进行比较,而不是以整数的形式。
比较原则:两个数,同一位数字大的数排在前面,比如567应排在561前面,66应排在567前面。
比较流程:
如果两数长度相等,按照原则确定排序。
如果两数长度不相等
没有多出来的部分不相等(如56和789,只比较56和78)
按照原则确定排序
没有多出来的部分相等(如56和567)
将多出来的部分跟长度较短的那个数比较,重复比较流程
然而,其实判断一下string1 + string2 < string2 + string1就知道哪个数更大了。
不过,Java里,小于号和大于号不能用在字符串的比较上,要用"str".compareTo("other-str")来比较。
package top.qlin.leo;
import java.