面试题33:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 * 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
package ;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;/*** @Name:* @Description:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。* 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。* @Author: Allen*/
public class SortArrayToMinNum33 {public static void main(String args[]){Scanner scanner = new Scanner(System.in);int length = scanner.nextInt();int intArr[] = new int[length];for(int i=0; i<length; i++){intArr[i]=scanner.nextInt();}Solution33 solution33 = new Solution33();StringOfInt[] stringOfInts=solution33.intToString(intArr);if(stringOfInts.length>0){for(StringOfInt stringOfInt : stringOfInts){System.out.print(stringOfInt.s);}}System.out.println();}
}class Solution33{StringOfInt[] intToString(int[] intArr){if(intArr==null || intArr.length==0){return;}StringOfInt strArr[] = new StringOfInt[intArr.length];for(int i=0; i<strArr.length; i++){strArr[i]=new StringOfInt();strArr[i].s=String.valueOf(intArr[i]);}Arrays.sort(strArr,new StringComparator());//用自定义的比较器进行排序return strArr;}}class StringComparator implements Comparator<StringOfInt>{@Overridepublic int compare(StringOfInt o1, StringOfInt o2) {String s1=o1.s+o2.s;String s2=o2.s+o1.s;int ret=0;if(s1.compareTo(s2)<0){ret=-1;}else if(s1.compareTo(s2)>0){ret=1;}else ret=0;return ret;}
}class StringOfInt{String s;
}
面试题33:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 * 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。相关推荐
- python从键盘输入一个数、判断其是奇数还是偶数_从键盘上任意输入一个正数,判断是奇数还是偶数...
从键盘上任意输入一个4位正整数,然后逆序数输出 intmain(){intn,n1,n2,n3,n4;cin>>n;n1=n/1000;n2=(n%1000)/100;n3=(n%100) ...
- python怎么判断一个数是不是正整数_Python如何判断一个正整数是否是素数?
素数(Prime Number),又称质数,一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数:否则,称为合数(Composite Number).1既不是素数,也不是合数. 如2. ...
- 任何一个正整数都可以用2的幂次方表示
例如:137=2^7+2^3+2^0,约定a^b可表示为a(b),则137可表示为:2(7)+2(3)+2(0),进一步7=2^2+2+2^0,3=2+2^0.所以137最终可以表示为2(2(2)+2 ...
- C语言编程>第二周 ⑤ 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
例题:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 代码如下: /*程序分析:利用while语句,条件为输入的字符不为'\n'*/ #include "stdio.h& ...
- php 动态多维数组长度,怎么在php中利用count获取多维数组的长度
怎么在php中利用count获取多维数组的长度 发布时间:2021-01-05 16:38:55 来源:亿速云 阅读:80 作者:Leah 今天就跟大家聊聊有关怎么在php中利用count获取多维数组 ...
- Visual Studio中的第一个Django-Python应用程序
目录 介绍 创建一个项目 添加虚拟环境 结论 介绍 Python是一种非常强大且流行的编程语言,用于机器学习.人工智能.数据科学. 但是,如果您正在考虑使用此python创建一个Web应用程序,它可以 ...
- 萌新的Python练习菜鸟100例(十七)输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
题目: 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 分析: · string模块的使用: 字符串实现了所有一般序列的操作,还额外提供了以下列出的一些附加方法. 字符串还支持两种 ...
- 如何用matlab找出一组离散数据中的峰值
如何用matlab找出一组离散数据中的峰值 对于一组离散数据,我们经常需要找出其中的峰值,如下一组离散数据: x = [1 2 3 4 3 2 1 5 8 9 17 12 11 5 3 2 1 7 1 ...
- html拆分单元格成两列,在excel中怎样把一个单元格拆分成两个单元格
excel表格中如何拆分带括号的单元格比如说我有一个表格单元格内容是 :张三李四(000001) 如何将括号内的选中需要拆分的单元格,Ctrl +F把单元格里面的括号或者书名号换成逗号,然后在数据选项 ...
- 给定一个正整数n, 输出1到n的所有排列 如输入 3 输出 123, 132, 213, 231, 312, 321 (Java实现)
package com.yijie.practice;import java.util.HashSet; import java.util.Scanner; import java.util.Set; ...
最新文章
- MariaDB/MySQL从数据库中选择随机的行
- 剑指offer 28:字符串的排列
- 上职高学计算机专业好还是农林,职业高中电脑专业和大学电脑专业 有什么不同?...
- Navicat for MySQL连接MYSQL出错,错误代码1045的解决方法
- Java设计模式(学习整理)---命令模式
- 蓝桥杯 2011年第二届C语言初赛试题(4)
- 互联网反欺诈体系中的常用技术和数据类型
- centos普通用户和root用户之间相互切换
- iOS之中国银联移动支付控件升级的问题
- php跳转qq临时会话,QQ客服支持临时会话设置
- java 纳秒 毫秒,秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)及Java获得
- App Store上的健身应用
- mac svn 服务器及客户端
- 微拍堂积极践行社会责任,促进中国经济高质量发展
- 初识MIMO(五):CSI反馈及其仿真
- Linux配置文档 Samba
- 2016年 团体程序设计天梯赛——题解集
- 如何绘画人物的衣服?人物的服装怎么上色?
- 谈h站与假高权重站的操作与盈利模式
- RMAN -06091
热门文章
- git 解决合并冲突
- matlab高斯消去法解线性方程组,高斯消元法—求解线性方程组与实例分析应用.pdf...
- 【每日函数】每日函数(2021.08.22)
- excel 将科学计数法的格式换成文本
- MySQL的事务特性
- 学位论文写作规范之论文选题、开题报告、毕业论文
- JAVA空间换时间以及时间换空间的例子
- java高级软件工程师证书国家,看完这篇彻底明白了
- 点云库PCL学习笔记 -- 输入输出IO -- 6.PCL中记录时间长度TicToc 类和系统Time 类
- 美团2021届秋季校园招聘笔试真题解析:小美的仓库整理