PAT 1038
来源:互联网 发布:nginx 访问文件 403 编辑:程序博客网 时间:2024/06/07 12:06
题目链接如下:
pat 1038
此题的重点在于 32,321 3214 在排序时应当是 32 3214 321 的顺序,仔细观察发现只需先循环的填充不足8位的数至八位再排序即可得到正确的序列 如该用例中 321->32132132 3214->32143214 32->32323232 如何排序即一目了然
同时要注意最开始的0是不输出的,并且如果输入的全是0则应当输出一个0
此题仍然对于java来说无法ac,有一组超时,但使用c语言则可以ac
代码如下(有一组超时)
import java.util.ArrayList;import java.util.Collections;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int flag1=1; int flag2=1; ArrayList<A> ar=new ArrayList<A>(); for(int i=0;i<n;i++){ ar.add(new A(sc.next())); } Collections.sort(ar); for(int i=0;i<ar.size();i++){ A a=ar.get(i); char[] rr=a.s.toCharArray(); for(int j=0;j<rr.length;j++){ if(rr[j]=='0'){ if(flag1==0){ System.out.print(rr[j]); } else continue; } else{ System.out.print(rr[j]); flag1=0; flag2=0; } } } if(flag2==1) System.out.println('0'); else System.out.println(); }}class A implements Comparable<A>{ String s; A(String s){ this.s=s; } @Override public int compareTo(A o) { String m1=s; String m2=o.s; int l1=m1.length(); int l2=m2.length(); for(int i=0;i<8-l1;i++) m1+=s.toCharArray()[i%l1]; for(int i=0;i<8-l2;i++) m2+=o.s.toCharArray()[i%l2]; return m1.compareTo(m2); }}
0 0
- PAT-1038
- pat 1038
- PAT 1038
- PAT 1038
- PAT-1038
- PAT 1038
- PAT Advanced Level 1038
- pat-advanced(1035-1038)
- PAT(甲级)1038
- PAT basic 1038
- 浙大PAT甲级 1038
- PAT乙级1038
- PAT甲级1038
- pat-bl-1038
- PAT(乙级)1038
- PAT basic 1038
- PAT basic 1038
- pat
- 【CodeForces】A. Twins
- Android UI技巧(一)——Android中伸缩自如的9patch图片切法,没有美工自给自足
- (十)利用processing绘制3D图形
- Android简单实现仿支付宝新年红包活动页面的动态布局效果
- PHP---加密
- PAT 1038
- 基于Python的数据可视化 matplotlib seaborn pandas
- java并发(二十五)java7之fork-join框架
- 【CodeForces】A. Helpful Maths
- mysql(mariadb)语句
- Angular2教程(七)
- 全面解释java中StringBuilder、StringBuffer、String类之间的关系
- APP开发中主页面切换的方法(登录和数据页面)
- 【CodeForces】A. Petya and Strings