codeforces 632C (练习Java排序)
来源:互联网 发布:wind软件 编辑:程序博客网 时间:2024/06/07 23:47
题目:http://codeforces.com/contest/632/problem/C
套了Petr的Java板子,来练习一下,没想到写个排序都那么费劲,,
- 1.在Comparator中重载比较函数
- 2.重写一个String类,重载比较函数
1.在Comparator中重载比较函数 代码:
import java.io.OutputStream;//输入输出流import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.util.Arrays;import java.util.StringTokenizer;import java.io.IOException;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.InputStream;import java.util.Comparator;/** * Built using CHelper plug-in * Actual solution is at the top */public class Main { public static void main(String[] args) { InputStream inputStream = System.in; OutputStream outputStream = System.out; InputReader in = new InputReader(inputStream); PrintWriter out = new PrintWriter(outputStream); TaskA solver = new TaskA(); solver.solve(1, in, out); out.close(); } static class TaskA { public void solve(int testNumber, InputReader in, PrintWriter out) { int n = in.nextInt(); String [] str = new String[n]; for(int i = 0;i < n;i++) str[i] = in.next(); Arrays.sort(str,new Comparator<String>(){ @Override public int compare(String a, String b) { return (a+b).compareTo(b+a); } }); for(int i = 0;i < n;i++) out.print(str[i]); out.println(); } private void fun(){ } } static class InputReader { public BufferedReader reader; public StringTokenizer tokenizer; public InputReader(InputStream stream) { reader = new BufferedReader(new InputStreamReader(stream), 32768); tokenizer = null; } public String next() { while (tokenizer == null || !tokenizer.hasMoreTokens()) { try { tokenizer = new StringTokenizer(reader.readLine()); } catch (IOException e) { throw new RuntimeException(e); } } return tokenizer.nextToken(); } public int nextInt() { return Integer.parseInt(next()); } }}
1.在Comparator中重载比较函数
和上面类似的:
import java.io.OutputStream;//输入输出流import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.util.Arrays;import java.util.StringTokenizer;import java.io.IOException;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.InputStream;import java.util.Comparator;/** * Built using CHelper plug-in * Actual solution is at the top */public class Main { public static void main(String[] args) { InputStream inputStream = System.in; OutputStream outputStream = System.out; InputReader in = new InputReader(inputStream); PrintWriter out = new PrintWriter(outputStream); TaskA solver = new TaskA(); solver.solve(1, in, out); out.close(); } static class TaskA { public void solve(int testNumber, InputReader in, PrintWriter out) { int n = in.nextInt(); String [] str = new String[n]; for(int i = 0;i < n;i++) str[i] = in.next(); Comparator<String> cmp = new Comparator<String>(){ @Override public int compare(String a, String b) { return (a+b).compareTo(b+a); } }; Arrays.sort(str,cmp); for(int i = 0;i < n;i++) out.print(str[i]); out.println(); } private void fun(){ } } static class InputReader { public BufferedReader reader; public StringTokenizer tokenizer; public InputReader(InputStream stream) { reader = new BufferedReader(new InputStreamReader(stream), 32768); tokenizer = null; } public String next() { while (tokenizer == null || !tokenizer.hasMoreTokens()) { try { tokenizer = new StringTokenizer(reader.readLine()); } catch (IOException e) { throw new RuntimeException(e); } } return tokenizer.nextToken(); } public int nextInt() { return Integer.parseInt(next()); } }}
2.重写一个String类,重载比较函数:
import java.io.OutputStream;//输入输出流import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.util.Arrays;import java.util.StringTokenizer;import java.io.IOException;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.InputStream;import java.util.Comparator;/** * Built using CHelper plug-in * Actual solution is at the top */public class Main { public static void main(String[] args) { InputStream inputStream = System.in; OutputStream outputStream = System.out; InputReader in = new InputReader(inputStream); PrintWriter out = new PrintWriter(outputStream); TaskA solver = new TaskA(); solver.solve(1, in, out); out.close(); } static class TaskA { public void solve(int testNumber, InputReader in, PrintWriter out) { int n = in.nextInt(); S[] str = new S[n]; for(int i = 0;i < n;i++) str[i] = new S(in.next()); Arrays.sort(str,0,n); for(int i = 0;i < n;i++) System.out.print(str[i].s); //out.println(); } private void fun(){ } } static class S implements Comparable<S>{ String s; S(String ss){ s = ss; } public int compareTo(S p) { return (s+p.s).compareTo(p.s+s); } } static class InputReader { public BufferedReader reader; public StringTokenizer tokenizer; public InputReader(InputStream stream) { reader = new BufferedReader(new InputStreamReader(stream), 32768); tokenizer = null; } public String next() { while (tokenizer == null || !tokenizer.hasMoreTokens()) { try { tokenizer = new StringTokenizer(reader.readLine()); } catch (IOException e) { throw new RuntimeException(e); } } return tokenizer.nextToken(); } public int nextInt() { return Integer.parseInt(next()); } }}
阅读全文
0 0
- codeforces 632C (练习Java排序)
- codeforces 632C C The Smallest String Concatenation(排序)
- codeforces - 18C - Stripe(练习)
- java练习(选择排序)
- java练习(冒泡排序)
- C 冒泡排序 练习
- codeforces 13C Sequence(排序,DP)
- CodeForces 510C (拓扑排序)
- codeforces 501C (拓扑排序另类)
- CodeForces - 510C(拓扑排序)
- 【CodeForces 479C】 Exams(排序)
- java小练习(6)--排序 problem
- 蓝桥杯(Java )基础练习 数列排序
- Java排序练习
- java练习-字符串排序
- C语言:冒泡排序练习
- C语言排序小练习
- Codeforces - Educational Codeforces Round 6C - Pearls in a Row(练习)
- 解决xcode9真机调试问题
- Android sdk的目录结构
- 笔记本用了这么久,快捷键知多少?
- VirtualBox虚拟机下kali映射USB无线网卡无法启用问题解决
- String对象具备的一些基本方法
- codeforces 632C (练习Java排序)
- c++ 合并两个数组
- Docker部署Sentry+Django(无法收到告警邮件解决)
- ES6——字符串扩展
- Jzoj3518 进化序列
- 35 个 Java 代码性能优化总结
- Tensorflow应用实例(一)
- 机房模拟赛 2017年9月26日 数据结构
- SpringCloud(第 021 篇)Zuul 的过滤器 ZuulFilter 的使用