首页 > 编程知识 正文

网页跳转不出来怎么办,网页跳转微信小程序

时间:2023-05-04 10:49:58 阅读:255579 作者:92

题目:



代码如下:

#include<bits/stdc++.h>using namespace std;int main(){int n,num = 0;string str,web,temp;bool flag;stack<string> s1,s2;cin >> n;for(int i = 0;i < n;i++){cin >> str;flag = true;if(str == "VISIT") {cin >> web;while(!s2.empty()) s2.pop();s1.push(web);}else if(str == "BACK"){if(s1.size() <= 1) {cout << "Ignore" << endl;continue;}s2.push(s1.top());s1.pop();}else if(str == "FORWARD"){if(s2.empty()) {cout << "Ignore" << endl;continue;}s1.push(s2.top());s2.pop();}cout << s1.top() << endl;} return 0;}

计蒜客上的题目黏贴不了,大家凑合看一下截图吧…
个人觉得这道题还是不错的,实现BACK和FORWARD这两个操作光靠一个栈可不够,因为一个栈你把网址拿出来之后就再也访问不到之前的了,所以需要用另外一个栈来存放你从第一个栈中拿出的网址。基本思路是这样的,当执行VISIT操作时,你需要把第二个栈全部清空,因为你再也没有FORWARD的可能了,此时再往前肯定是Ignore,因为这是一个新的开始(个人是这么理解的…)。此时你只需要把这个新的网址放到第一个栈中就可以了。当执行”BACK“操作时,你要把第一个栈的栈顶元素拿出放入第二个栈中,如果此时第一个栈只有<=1个元素了,那么你是回不去的。这里肯定有很多人认为为何不是栈为空的时候呢?因为你当前的页面是在这个网址,也就是说此时栈中除了这个网址没有别的多余网址了,你不能再往回了(这里我第一次也写错了)。当执行”FORWARD“操作时你需要把第二个栈的栈顶元素拿出放回第一个栈中,此时Ignore的条件与BACK的不同,需要第二个栈为空才会是Ignore。因为第二个栈保存的是你之前访问过的网页,而不是现在停留的。(这是二者的区别)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。