java算法题——豪哥打牌

题目以及要求:

题目描述
著名ACM选手豪哥退役后迷上了打扑克。对对碰是一种十分有趣的双人游戏,游戏开始时分别发给玩家数量相等的牌,玩家均不能看到自己和对方的牌(即盲打),接着两人开始轮流出一张牌,如果出的那张牌和桌面上最上面的牌相同, 裁判则收回这一对牌,并给出牌的这方记一分。当双方牌全部出完后,得分多者获胜。
现在甲乙两方正在玩这个游戏,请你帮忙判断谁获胜了。
输入格式
第一行输入一个整数,代表甲乙各有的牌数。
第二行按照顺序输入了甲乙的所有出牌情况(每次出牌均为的一种),中间用空格分割,甲是先出牌的一方。
输出格式
如果甲获胜了,则输出 JIA,乙获胜则输出 YI ,平局的话输出 PING

样例

在这里插入图片描述

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class 豪哥打牌 {
		public static void main(String[] args) {
			Scanner sc = new Scanner(System.in);
			int num=sc.nextInt();
			int jia=0;
			int yi=0;
			int p=0;//p为最后一个元素的下标位置
			List<Integer> list = new ArrayList<Integer>();
			list.add(sc.nextInt());
			for (int i = 1; i < 2*num; i++) {
				int a=sc.nextInt();
				//如果p>=0并且相邻的数相等
				if(p>=0&&a==list.get(p)){
					if (i%2!=0) {//以输入的个数判断是乙还是甲
						yi++;//乙加一分
					}else {
						jia++;//甲加一分
					}
					//相同,remove掉最后一个元素
					list.remove(p);
					//下标-1
					p--;
				}else {
					list.add(a);
					p++;
				}

			}
			if (yi>jia) {
				System.out.println("YI");
			}else if (jia>yi) {
				System.out.println("JIA");
			}else {
				System.out.println("PING");
			}
		}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值