1512:2つのスタックでキューを実装
1773 ワード
タイトル1512:2つのスタックでキューを実現
時間制限:1秒
メモリ制限:128メガ
特殊問題:いいえ
コミット:701
解決:258
タイトルの説明:
2つのスタックで1つのキューを実現し、キューのPushとPop操作を完了します.キュー内の要素はintタイプです.
入力:
各入力ファイルには、テストサンプルが含まれています.各テストサンプルについて、最初の行には、キュー操作の個数を表すn(1<=n<=10000000)が入力される.次のn行、各行にキュー操作を入力:1.PUSH Xはキュー内のpushの整数x(x>=0)2.POPがキューからpopする数.
出力:
各テストケースに対応して、すべてのpop操作のキューpopからの数値を印刷します.pop操作を実行するときにキューが空の場合は、-1を印刷します.
サンプル入力:
サンプル出力:
意外にも現れた
全部で5つのケースがあり、5つ通過したが、総時間はタイムアウトした.
このようなヒントは、またJavaのせいだろう.ともかくとして.
時間制限:1秒
メモリ制限:128メガ
特殊問題:いいえ
コミット:701
解決:258
タイトルの説明:
2つのスタックで1つのキューを実現し、キューのPushとPop操作を完了します.キュー内の要素はintタイプです.
入力:
各入力ファイルには、テストサンプルが含まれています.各テストサンプルについて、最初の行には、キュー操作の個数を表すn(1<=n<=10000000)が入力される.次のn行、各行にキュー操作を入力:1.PUSH Xはキュー内のpushの整数x(x>=0)2.POPがキューからpopする数.
出力:
各テストケースに対応して、すべてのpop操作のキューpopからの数値を印刷します.pop操作を実行するときにキューが空の場合は、-1を印刷します.
サンプル入力:
3
PUSH 10
POP
POP
サンプル出力:
10
-1
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.Stack;
public class S7 {
static Stack<Integer> s1 = new Stack<Integer>();
static Stack<Integer> s2 = new Stack<Integer>();
public static void main(String[] args) throws FileNotFoundException {
BufferedInputStream in = new BufferedInputStream(new FileInputStream("S7.in"));
System.setIn(in);
Scanner cin = new Scanner(System.in);
while (cin.hasNextLine()) {
int lines = Integer.parseInt(cin.nextLine());
for(int i=0; i<lines; i++){
String s = cin.nextLine();
process(s);
}
}
}
public static void process(String s){
if(s.startsWith("PUSH")){
String[] ss = s.split(" ");
int val = Integer.parseInt(ss[1]);
s1.push(val); //
}else if(s.startsWith("POP")){
if(s2.isEmpty()){ // s2 , s1 2
while(!s1.isEmpty()){
s2.push(s1.pop());
}
}
if(s2.isEmpty()){
System.out.println("-1");
}else{
System.out.println(s2.pop());
}
}
}
}
意外にも現れた
全部で5つのケースがあり、5つ通過したが、総時間はタイムアウトした.
このようなヒントは、またJavaのせいだろう.ともかくとして.