牛客網|集合桟
タイトルの説明
複数のスタックからなるデータ構造SetOfStacksを実装してください.各スタックのサイズはsizeで、現在のスタックが満たされている場合、新しいスタックが作成されます.このデータ構造は、通常のスタックと同じpushおよびpop動作をサポートする必要があります.
操作シーケンスint[][2]ope(C++はvector)が与えられ、各操作の最初の数は操作タイプを表し、1であればpush操作、後の数はpushに対応する数字である.2であればpop操作であり,後の数は意味がない.すべての操作を完了したSetOfStacksの順序は下から上で、デフォルトの初期のSetOfStacksは空です.データの合法性を保証する.
複数のスタックからなるデータ構造SetOfStacksを実装してください.各スタックのサイズはsizeで、現在のスタックが満たされている場合、新しいスタックが作成されます.このデータ構造は、通常のスタックと同じpushおよびpop動作をサポートする必要があります.
操作シーケンスint[][2]ope(C++はvector
import java.util.*;
public class SetOfStacks {
public ArrayList<ArrayList<Integer>> setOfStacks(int[][] ope, int size) {
// write code here
ArrayList<ArrayList<Integer>> stacklist = new ArrayList<>();
int length = ope.length;
ArrayList<Integer> cur = new ArrayList<>();
stacklist.add(cur);
for (int i = 0; i < length; i++) {
if(ope[i][0]==1)//
{
if(cur.size()==size)
{
cur = new ArrayList<>();
stacklist.add(cur);
}
cur.add(ope[i][1]);
}
else if(ope[i][0]==2)//
{
if(cur.size()==0)
{
stacklist.remove(stacklist.size()-1);
cur = stacklist.get(stacklist.size()-1);
}
cur.remove(cur.size()-1);
}
}
return stacklist;
}
}