输入示例如下:
555503,772867,756893,339138,399447,40662,859037,628085,855723,974471,599631,636153,581541,174761,948
135,411485,554033,858627,402833,546467,574367,360461,566480,755523,222921,164287,420256,40043,977167,543295,944841,917125,331763,188173,353275,175757,950417,284578,617621,546561,913416,258741,260569,630583,252845;10
解题思路:
按照题目要求,先按照奇偶分类,再倒序排序。最后返回一个list
输出时,根据N的值来输出。
import jdk.nashorn.internal.ir.CallNode;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
List<Integer> list=new ArrayList<Integer>();
Scanner sc= new Scanner(System.in);
String next = sc.next();
String[] split = next.split("[\\,\\;]");
for (String s : split) {
list.add(Integer.parseInt(s));
}
int n = list.remove(list.size()-1);
List result = setProperty(list);
int temp=0;
for (Object o : result) {
if(temp<n) {
if (temp <n - 1) {
System.out.print(o);
System.out.print(",");
} else {
System.out.print(o);
}
temp++;
}
else{
break;
}
}
}
public static List setProperty(List list){
//奇数list
ArrayList oddlist= new ArrayList();
// 偶数list
ArrayList evenlist = new ArrayList();
for (Object i : list) {
if((Integer) i%2==0){
evenlist.add(i);
}
else{
oddlist.add(i);
}
}
Collections.sort(evenlist);
Collections.sort(oddlist);
Collections.reverse(evenlist);
Collections.reverse(oddlist);
List li = new ArrayList();
for (Object o : evenlist) {
li.add(o);
}
for (Object o : oddlist) {
li.add(o);
}
return li;
}
}