トピックス要件:
製品とソフトウェアでの6月のニンニクは毎日「ニンニク植物ブラウザ」と呼ばれます。ブラウザでは、3つの操作の合計:オープンページ、巻き戻しや前方。次のようにそれらの機能は以下のとおりです。
ページを開く:アドレスバーにURLを入力すると、対応するページのURLにジャンプします。
- フォールバック:前のページの訪問に戻ります。
- フォワード:前の操作がページを開くことだったならば、それは前方に移動することはありません最後のフォールバックの前のページに戻ります。
- さて、ニンニク6月には、ブラウザ、一連の操作を開いて、あなたは彼がページをURLの各操作の後に出力する必要があります。
入力形式
最初の入力整数のラインN(0 <N \ル100000)N(0 <n≤100000)、操作ニンニクJunの数を表します。
スペースと改行が含まれていないURLを入力し、続いて訪問は、(URL長未満100,100である)場合、次の第1の入力文字列のN-N線の合計が、入力されたURLは、6月ニンニクブラウザのアドレスバーを表す場合それは前方にある場合、進むボタンをクリックニンニク王を表し、これは、戻るボタンをクリックしたニンニク王を表し、帰ってきました。
出力フォーマット
ニンニク王が成功したウェブサイトの後に動作させることができれば、各操作については、ニンニク王の出力、それ以外の出力は無視します。ニンニク王が入力されたすべてのURLが正当であると仮定。
サンプル入力
10 VISITます。https:// www.jisuanke.com/course/476 VISITます。https:// www.taobao.com/ BACK BACK FORWARD FORWARD BACK VISITます。https:// www.jisuanke.com/course/429 FORWARD BACK
サンプル出力
HTTPS:// www.jisuanke.com/course/476 ます。https:// www.taobao.com/ ます。https:// www.jisuanke.com/course/476 無視し ます。https:// www.taobao.com/ 無視し ます。https:// www.jisuanke.com/course/476 ます。https:// www.jisuanke.com/course/429 無視し ます。https:// www.jisuanke.com/course/476
アイデア:https://blog.csdn.net/weixin_44336954/article/details/92025250
コードから:https://blog.csdn.net/biubiupa233/article/details/79521058
1つの#include <iostreamの> 2の#include <スタック> 3。の#include < ストリング > 4。 使用した 名前空間STD; 5 int型のmain(){ 6 IOSの:: sync_with_stdio(0); // 入出力タイムアウトを回避するために、 7。 スタック< ストリング > S1 ; // ストア後方部位 8。 スタック< ストリング > S2; // ストアサイトフォワード 9。 INT N-; 10 CIN >> N-; 11 ながら(N-- ){ 12である 文字列STR1、STR2; 13 cinを>> str1は、 14 IF(STR1 == " VISIT " ){ 15 cinを>> STR2; 16 しばらく(s2.empty()!)// サイトへのアクセス、前方に空がある場合は 17 s2が。 POP(); 18 s1.push(STR2); // ストアサイトに戻し、現在のサイトを訪問し、 19 // このサイトに後退するまでの時間は事前にサイトを抽出することができるように、 20 COUT << S1。トップ()<< ENDL; 21である } 22は、 他の IF(STR1 == " 戻ります" ){ 23 IF(s1.empty())はcout << " 無視" <<てendlを; // あなたは、スタックの裏サイトにしたい場合は、空である 24 他に { // 空になっていない 25 s2.pushを(s1.top()); // サイト訪問前にスタックは、前方のウェブサイトを堆積 26 s1.pop(); 27 IF(!s1.empty()); coutの<< s1.top()<< ENDL // 後退サイトスタックは、出力空でない 28 他 { // 空の 29 s1.push(s2.topを()); //は復帰前の状態を記憶する 30 )(s2.popを、 31は COUT << "無視" << ENDL; 32 } 33 } 34 } 35 他{ 36 場合(s2.empty())// 前进为空 37 COUT << " 無視する」 << ENDL; 38 他 { // 不为空 39 COUT << s2.top()<< ENDL; 40 s1.push(s2.top()); 41 s2.pop(); 42 } 43 } 44 } 45 リターン 0 。 46 }