import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in= new Scanner(System.in); int n=in.nextInt(); StringBuilder sb= new StringBuilder(); for ( int i= 0 ;i<n;i++){ //将将甲乙出示的锤子剪刀布一起存入到字符串sb中 String a=in.next(); sb.append(a); String b=in.next(); sb.append(b); } String str=sb.toString(); //将sb字符串转化成String类型 char [] ch=str.toCharArray(); //将String类型转化为char类型 int num1= 0 ; //甲胜利的次数 int num2= 0 ; //甲乙双方平局的次数 int num3= 0 ; //甲方失败的次数 ArrayList<Character> list1= new ArrayList<Character>(); ArrayList<Character> list2= new ArrayList<Character>(); for ( int i= 0 ;i<ch.length;i++,i++){ int flag=judge(ch[i],ch[i+ 1 ]); //若返回1,则甲胜利;若返回0,则双方平手;若返回-1,则甲失败。 switch (flag){ case 1 : ++num1; list1.add(ch[i]); break ; case 0 : ++num2; break ; case - 1 : ++num3; list2.add(ch[i+ 1 ]); break ; } } char max1=MaxGesture(list1); char max2=MaxGesture(list2); System.out.println(num1+ " " +num2+ " " +num3); //输出甲胜负平次数 System.out.println(num3+ " " +num2+ " " +num1); //输出乙胜负平次数 System.out.println(max1+ " " +max2); //输出甲乙胜出使用最多的手势 in.close(); } private static char MaxGesture(ArrayList<Character> list) { String str=list.toString(); char [] ch=str.toCharArray(); int numc= 0 ; int numj= 0 ; int numb= 0 ; char Max= 'A' ; for ( int i= 0 ;i<ch.length;i++){ if (ch[i]== 'C' ) ++numc; else if (ch[i]== 'J' ) ++numj; else if (ch[i]== 'B' ) ++numb; } if ((numc>numj && numc>numb) || (numc==numj && numc>numb) || (numc>numj && numj==numb)) Max= 'C' ; else if (numj>numc && numj>numb) Max= 'J' ; else if ((numb>numc && numb>numj) || (numb==numj && numb==numc) || (numc==numj && numb>numc) ||(numb==numc && numb>numj) || (numb==numj && numb>numc)) Max= 'B' ; return Max; } private static int judge( char c, char d) { int num=- 2 ; if (c== 'C' &&d== 'J' || c== 'B' &&d== 'C' || c== 'J' &&d== 'B' ) num= 1 ; else if (c== 'C' &&d== 'C' || c== 'J' &&d== 'J' ||c== 'B' &&d== 'B' ) num= 0 ; else if (c== 'J' &&d== 'C' || c== 'C' &&d== 'B' || c== 'B' &&d== 'J' ) num=- 1 ; return num; } } |