题目:http://acm.hdu.edu.cn/showproblem.php?pid=1106
问题:
1.前面有5,后面有5,和中间多5的情况我处理了。
2.网友说多值输入的情况我也处理了
3.测试的结果都通过了
测试用例:
505123123205077555
0 77 12312320
00005051231232050775
0 77 12312320
50512312320555507750005
0 77 12312320
505123123205077
0 77 12312320
05123123205077
0 77 12312320
051231232055077
0 77 12312320
5550
0
1155663535006555
3 6 11 663
10000000055051120
0 1120 100000000
4.但在提交时老是WR,有做过的,麻烦帮忙看看。多谢了!import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
/**
* hdu 1106 排序
* @author ps
*/
public class Hdu1106 { /**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
while((str = br.readLine()) != null){
Pattern p = Pattern.compile("5", 0);
String[] list = p.split(str, 0);
List data = new ArrayList();
for(int i = 0;i<list.length;i++){
//5051231232050775当前面有5或者中间有55的形式时分割出来有空字符
//要考虑把空串去掉
if("".equals(list[i].trim())){
continue;
}
int d = Integer.parseInt(list[i]);
if(!data.contains(d)){
data.add(d);
}
}
Collections.sort(data);
for(int j=0;j<data.size();j++){
System.out.print(data.get(j));
if(j != data.size()-1){
System.out.print(" ");
}
}
System.out.println();
}
}
}
问题:
1.前面有5,后面有5,和中间多5的情况我处理了。
2.网友说多值输入的情况我也处理了
3.测试的结果都通过了
测试用例:
505123123205077555
0 77 12312320
00005051231232050775
0 77 12312320
50512312320555507750005
0 77 12312320
505123123205077
0 77 12312320
05123123205077
0 77 12312320
051231232055077
0 77 12312320
5550
0
1155663535006555
3 6 11 663
10000000055051120
0 1120 100000000
4.但在提交时老是WR,有做过的,麻烦帮忙看看。多谢了!import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.regex.Pattern;
/**
* hdu 1106 排序
* @author ps
*/
public class Hdu1106 { /**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
while((str = br.readLine()) != null){
Pattern p = Pattern.compile("5", 0);
String[] list = p.split(str, 0);
List data = new ArrayList();
for(int i = 0;i<list.length;i++){
//5051231232050775当前面有5或者中间有55的形式时分割出来有空字符
//要考虑把空串去掉
if("".equals(list[i].trim())){
continue;
}
int d = Integer.parseInt(list[i]);
if(!data.contains(d)){
data.add(d);
}
}
Collections.sort(data);
for(int j=0;j<data.size();j++){
System.out.print(data.get(j));
if(j != data.size()-1){
System.out.print(" ");
}
}
System.out.println();
}
}
}
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;public class SplitByFive { // in:0051231232050775
// out:0 77 12312320
public static void main(String[] args) {
String in = "0051231232050775";
Scanner scanner = new Scanner(in);
Set<Integer> map = new TreeSet<Integer>();
scanner.useDelimiter("5");
while(scanner.hasNextInt()){
map.add(scanner.nextInt());
}
System.out.println(map);
}
}
/**
* hdu 1106 排序
* @author ps
*/
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
while ((str = br.readLine()) != null) {
Scanner scanner = new Scanner(str.trim());
Set<Integer> map = new TreeSet<Integer>();
scanner.useDelimiter("5");
while (scanner.hasNextInt()) {
map.add(scanner.nextInt());
}
Iterator<Integer> it= map.iterator();//输出
while(it.hasNext()){
System.out.print(it.next());
if(it.hasNext())
System.out.print(" ");
}
}
}
}
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
String data[] = null;
int tempA,tempB;
while ((str = br.readLine()) != null) {
data = str.replaceAll("5+", " ").trim().split(" ");
for (int i = 0; i < data.length; i++) {
for (int j = i + 1; j < data.length; j++) {
if ((tempA=Integer.parseInt(data[i])) > (tempB=Integer.parseInt(data[j]))) {
data[j] = (tempA==0?0:tempA)+"";
data[i] = (tempB==0?0:tempB)+"";
}
}
}
for (String string : data) {
System.out.println(string);
}
}
}
}
省是省事,不过我还是觉得那个scanner在输入时还是有点麻烦。
也许是我不熟悉它的原因吧。
public class Main
{
public static void main(String a[])
{
Scanner scan=new Scanner(System.in);
while(scan.hasNext())
{
String in=scan.next(),out[]=in.split("5");
int ans[]=new int[out.length],len=0;
for (int i=0;i!=out.length;++i)
{
if (out[i].length()!=0)
{
ans[len++]=Integer.parseInt(out[i]);
}
}
Arrays.sort(ans,0,len);
for (int i=0;i<len-1;++i) System.out.print(ans[i]+" ");
System.out.println(ans[len-1]);
}
}
}
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;public class Test_2 {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String str = br.readLine();
String[] s = str.split("5");
ArrayList<String> al = new ArrayList<String>();
for(int i = 0; i <s.length;i++) {
if(!s[i].equals("")) {
al.add(s[i]);
}
}
s = new String[al.size()];
Arrays.sort(al.toArray(s), new Comparator<String>() {
public int compare(String o1, String o2) {
return new BigInteger(o1).compareTo(new BigInteger(o2));
}
});
for(String s_2:s)
System.out.print(s_2+" ");
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.util.Scanner;public class Main1106 {
public static void main(String[] args){
String str;
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
str = cin.next();
String[] str1 = str.split("5");
String[] str2 = new String[str1.length];
int cn = 0;
for(int i=0;i<str1.length; i++){
if(!str1[i].equals("")){
str2[cn++]=str1[i];
}
}
int [] arr = new int[cn];
for(int i=0;i<cn; i++){
arr[i] = Integer.parseInt(str2[i]);
}
Arrays.sort(arr);
for(int i=0; i<cn; i++){
if(i!=arr.length-1){
System.out.print(arr[i]+" ");
}else{
System.out.println(arr[i]);
}
}
}
}
}
主要是split()切的时候,第一串可能是空串。