为什么测试用例在这里显示错误?

时间:2017-06-18 12:50:11

标签: java data-structures stack

import java.util.*;
public class football{
public static void main(String args[]){
    int top=-1;
    final int MAX=10000000;
    int stack[]=new int[MAX];
//based on stacks
    Scanner sc=new Scanner(System.in);
    int cases,n,id;
    cases=sc.nextInt();
    for(int i=0;i<cases;i++){
        n=sc.nextInt();
        id=sc.nextInt();
        if(top>=MAX){
            System.exit(0);
        }else{
            top++;
            stack[top]=id;
        }
        for(int j=0;j<n;j++){
            char q;
            q=sc.next().charAt(0);
            if(q=='P'){
                id=sc.nextInt();
                top++;
                stack[top]=id;
            }else if(q=='B'){
                int temp=stack[top];
                top=top++;
                stack[top]=temp;
                continue;
            }

        }
        System.out.println("Player "+stack[top]);

        }
    }
}

/ *这是一个基于玩家传递hackerearth的问题,因为谁在N传递之后对谁进行调整并且我无法通过除样本之外的所有测试用例,请建议可以纠正的错误以便解决这个问题。 * /

1 个答案:

答案 0 :(得分:0)

}else if(q=='B'){
            int temp=stack[top-1];
            top++;
            stack[top]=temp;
            continue;
        }

这是你需要的,但是它不是一个好的情况,堆栈两个简单的变量是你需要跟踪最后的占有。