日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(栈)网页跳转

發布時間:2025/3/12 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (栈)网页跳转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:

VISIT打開界面,BACK回退,FORWARD前進。
現在輸入n行,每行首先輸入一個字符串,如果是VISIT,后面再輸入一行不含空格的網址,如果是BACK,回退,如果是FORWARD,前進。
對每次操作,如果能操作成,輸出操作后的網址,否則輸出Ignore。
這里回退的意思是返回上一次訪問的網頁,前進意思是返回回退之前的網頁。如果回退上一次操作是打開網頁,那么無法前進。也就是說,每次打開網頁后的下一個操作不能是回退。
輸入:

10 VISIT https://www.126.com/ VISIT https://www.taobao.com/ BACK BACK FORWARD FORWARD BACK VISIT https://www.163.com/ FORWARD BACK

輸出:

https://www.126.com/ https://www.taobao.com/ https://www.126.com/ Ignore https://www.taobao.com/ Ignore https://www.126.com/ https://www.163.com/ Ignore https://www.126.com/

分析與解答:

打開網頁入棧,回退棧頂元素出棧,如果棧里面只有一個元素,也就是說只打開了一個界面也是無法回退的。由于還需要前進,所以這里還要加一個棧,存出棧的元素。由題目要求每次打開網頁,都要把這個棧給清空。這里為什么加一個棧而不是數組,是因為距離的問題,最近的最先出去,先出去的網站一定不是最近的那個網站。
然后根據要求進行模擬即可。輸出存放網站的棧的棧頂元素即是當前網頁。

#include<iostream> #include<cstdio> #include<stack> #include<algorithm> #include<string> using namespace std;int main(){int n;cin>>n;stack<string> k1;stack<string> k2;for(int i=0;i<n;++i){string s;cin>>s;if(s=="VISIT"){string s2;cin>>s2;k1.push(s2);while(!k2.empty()){k2.pop();}// cout<<s2<<endl;;}else if(s=="BACK"){if(k1.size()>1) {k2.push(k1.top());k1.pop();}else{cout<<"Ignore"<<endl;continue;}}else{if(!k2.empty()){// cout<<k2.top()<<endl;k1.push(k2.top());k2.pop();}else{cout<<"Ignore"<<endl;continue;}}cout<<k1.top()<<endl;}return 0; } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的(栈)网页跳转的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。