给定一个整数(字符串也适用)序列,重新排列,得到最大的结果,比如31,3,35,7,9根据排列后得到组合 9735331,返回的是string类型
来源:互联网 发布:违规网络音乐 编辑:程序博客网 时间:2024/06/05 17:39
package sort;
/**
* 给定一个整数序列,重新排列,得到最大的结果,比如31,3,35,7,9根据排列后得到组合
* 9735331,返回的是string类型
*/
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Sort_Demo {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
String str=cin.nextLine();
String[] strarr=str.split(",");
String s=maxFun(strarr);
System.out.println("max="+s);
}
private static String maxFun(String[] strarr) {
if(strarr==null||strarr.length==0)
return "";
Arrays.sort(strarr,new Comparator<String>() {
public int compare(String s1,String s2){
int length1=s1.length();
int length2=s2.length();
StringBuilder sb1=new StringBuilder();
StringBuilder sb2=new StringBuilder();
sb1.append(s1);
sb2.append(s2);
//方法一,重新compare方法
//把s1与s2字符长度变为一样,短的后面添加两者长度差的元素,比如s1=2345,s2=34,则把s2=3434
if(length1>length2){
sb2.append(s2.substring(0, length1-length2));
}
else{
sb1.append(s1.substring(0, length2-length1));
}
return sb2.toString().compareTo(sb1.toString());
}
});
//方法二,重新compare方法
// public int compare(String s1,String s2){
// int length1=s1.length();
// int length2=s2.length();
//// System.out.println("s1="+s1+" s2="+s2);
//// System.out.println("l1="+length1+" l2="+length2);
// StringBuilder sb1=new StringBuilder();
// StringBuilder sb2=new StringBuilder();
// for(int i=0;i<length2;i++)//为了使sb1与sb2的位数相同
// sb1.append(s1);
//
// for (int i = 0;i<length1;i++) {
// sb2.append(s2);
// }
// System.out.println(sb2.toString().compareTo(sb1.toString()));
// return sb2.toString().compareTo(sb1.toString());
// }
// });
StringBuilder sb=new StringBuilder();
for (String string : strarr) {
sb.append(string);
}
return sb.toString();
}
}
/**
* 给定一个整数序列,重新排列,得到最大的结果,比如31,3,35,7,9根据排列后得到组合
* 9735331,返回的是string类型
*/
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Sort_Demo {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
String str=cin.nextLine();
String[] strarr=str.split(",");
String s=maxFun(strarr);
System.out.println("max="+s);
}
private static String maxFun(String[] strarr) {
if(strarr==null||strarr.length==0)
return "";
Arrays.sort(strarr,new Comparator<String>() {
public int compare(String s1,String s2){
int length1=s1.length();
int length2=s2.length();
StringBuilder sb1=new StringBuilder();
StringBuilder sb2=new StringBuilder();
sb1.append(s1);
sb2.append(s2);
//方法一,重新compare方法
//把s1与s2字符长度变为一样,短的后面添加两者长度差的元素,比如s1=2345,s2=34,则把s2=3434
if(length1>length2){
sb2.append(s2.substring(0, length1-length2));
}
else{
sb1.append(s1.substring(0, length2-length1));
}
return sb2.toString().compareTo(sb1.toString());
}
});
//方法二,重新compare方法
// public int compare(String s1,String s2){
// int length1=s1.length();
// int length2=s2.length();
//// System.out.println("s1="+s1+" s2="+s2);
//// System.out.println("l1="+length1+" l2="+length2);
// StringBuilder sb1=new StringBuilder();
// StringBuilder sb2=new StringBuilder();
// for(int i=0;i<length2;i++)//为了使sb1与sb2的位数相同
// sb1.append(s1);
//
// for (int i = 0;i<length1;i++) {
// sb2.append(s2);
// }
// System.out.println(sb2.toString().compareTo(sb1.toString()));
// return sb2.toString().compareTo(sb1.toString());
// }
// });
StringBuilder sb=new StringBuilder();
for (String string : strarr) {
sb.append(string);
}
return sb.toString();
}
}
0 0
- 给定一个整数(字符串也适用)序列,重新排列,得到最大的结果,比如31,3,35,7,9根据排列后得到组合 9735331,返回的是string类型
- 【笔试】得到一个序列的全排列
- 数字黑洞:任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到 * 一个最大的数:65432,一个最小的数23456。
- 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stri
- 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stri
- 确定两串乱序同构 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个
- CI1.3 给定两个字符串,确定一个字符串重新排列后,能否变成另一个字符串
- Java实现从一个数字中删除给定个数的数得到一个最大整数
- 给定一个整数数组,返回两个数字的索引,使它们相加得到一个特定目标值
- out.print(JSONArray.fromObject(al2));得到的是一个String类型的字符串
- 18 获取给定的序列的所有排列, 组合
- 面试3之确定其中一个字符串的字符重新排列后,能否变成另一个字符串
- 一个能将给定非负整数数组中的数字排列成最大数字的函数
- 一个能将给定非负整数数组中的数字排列成最大数字的函数
- 小算法:给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串s首先
- 字符串的排列/组合
- 字符串的排列、组合
- 字符串的组合排列
- redis简介及安装
- java 与 php 区别或异同(整理、整合)
- CodeForces570E - Pig and Palindromes 【DP】
- boost log 报错undefined reference to boost::log::v2_mt_posix::basic_formatter
- 7天入门php-文件上传
- 给定一个整数(字符串也适用)序列,重新排列,得到最大的结果,比如31,3,35,7,9根据排列后得到组合 9735331,返回的是string类型
- ubuntu 14.0.4 Mongodb 安装
- 《c和指针》摘录5—函数
- HDU:5907 Find Q(水题)
- js基础教程面向对象
- 【Dognle】【计算机硬件】原码、反码、补码、移码
- UVA 11491 Erasing and Winning(贪心)
- poj_2965 The Pilots Brothers' refrigerator(bfs+位运算)
- Android Butterknife