PAT (Basic Level) Practice (中文) 1018 锤子剪刀布 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344
wa18分
最后一个点超时
package PAT.BasicLevel;
import java.util.Scanner;
public class _1018_锤子剪刀布 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
int[] A = new int[3];//胜 平 败 //甲
int[] winA = new int[3];//b c j//甲
int[] winB = new int[3];//b c j//乙
char[] sign={'B','C','J'};
while (n-- > 0) {
char a = cin.next().charAt(0);
char b = cin.next().charAt(0);
switch (a) {
case 'B'://布
if (b == a) {//平局
A[1]++;
} else if (b == 'J') {A[2]++;winB[2]++;}//输了
else {
A[0]++;
winA[0]++;
}//赢了
break;
case 'J':
if (b == a) {//平局
A[1]++;
} else if (b == 'C') {A[2]++;winB[1]++;}//输了
else {
A[0]++;
winA[2]++;
}//赢了
break;
case 'C':
if (b == a) {//平局
A[1]++;
} else if (b == 'B') {A[2]++;winB[0]++;}//输了
else {
A[0]++;
winA[1]++;
}//赢了
break;
}
}
int max=winA[0],tA=0,tB=0;
for (int i = 1; i <winA.length ; i++) {
if(winA[i]>max){
max=winA[i];
tA=i;
}
}
max=winB[0];
for (int i = 1; i <winB.length ; i++) {
if(winB[i]>max){
max=winB[i];
tB=i;
}
}
System.out.println(A[0] + " " + A[1] + " " + A[2]);
System.out.println(A[2] + " " + A[1] + " " + A[0]);
System.out.println(sign[tA]+" "+sign[tB]);
}
}
本文作者:Author: 寒光博客
文章标题:[PAT] 1018 锤子剪刀布 (20 分)
本文地址:https://dxoca.cn/pat/274.html 百度未收录
版权说明:若无注明,本文皆为“Dxoca's blog (寒光博客)”原创,转载请保留文章出处。
本文地址:https://dxoca.cn/pat/274.html 百度未收录
版权说明:若无注明,本文皆为“Dxoca's blog (寒光博客)”原创,转载请保留文章出处。
博主可以试下转c++噢,用Java做算法题较c++有着不小的劣势,很有可能你的算法时间复杂度是完全可以过的,但是java...会跑的比较慢... 看了下博主的文章,感觉博主好厉害,自己搭建了个人网站,能加个好友吗一起学习QAQ
好 最近我也在看 C++ 可以~! 987284242 不过我也是萌新啦