ジャンプページ(複数のスタック)

 

 

 

 

トピックス要件:

製品とソフトウェアでの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 }

おすすめ

転載: www.cnblogs.com/jiamian/p/12164579.html