1472. 设计浏览器历史记录-双向队列法
admin
2024-03-07 08:29:37
0

1472. 设计浏览器历史记录-双向队列法

你有一个只支持单个标签页的 浏览器 ,最开始你浏览的网页是 homepage ,你可以访问其他的网站 url ,也可以在浏览历史中后退 steps 步或前进 steps 步。

请你实现 BrowserHistory 类:

BrowserHistory(string homepage) ,用 homepage 初始化浏览器类。
void visit(string url) 从当前页跳转访问 url 对应的页面  。执行此操作会把浏览历史前进的记录全部删除。
string back(int steps) 在浏览历史中后退 steps 步。如果你只能在浏览历史中后退至多 x 步且 steps > x ,那么你只后退 x 步。请返回后退 至多 steps 步以后的 url 。
string forward(int steps) 在浏览历史中前进 steps 步。如果你只能在浏览历史中前进至多 x 步且 steps > x ,那么你只前进 x 步。请返回前进 至多 steps步以后的 url 。

示例:

输入:
[“BrowserHistory”,“visit”,“visit”,“visit”,“back”,“back”,“forward”,“visit”,“forward”,“back”,“back”]
[[“leetcode.com”],[“google.com”],[“facebook.com”],[“youtube.com”],[1],[1],[1],[“linkedin.com”],[2],[2],[7]]
输出:
[null,null,null,null,“facebook.com”,“google.com”,“facebook.com”,null,“linkedin.com”,“google.com”,“leetcode.com”]

解释:
BrowserHistory browserHistory = new BrowserHistory(“leetcode.com”);
browserHistory.visit(“google.com”); // 你原本在浏览 “leetcode.com” 。访问 “google.com”
browserHistory.visit(“facebook.com”); // 你原本在浏览 “google.com” 。访问 “facebook.com”
browserHistory.visit(“youtube.com”); // 你原本在浏览 “facebook.com” 。访问 “youtube.com”
browserHistory.back(1); // 你原本在浏览 “youtube.com” ,后退到 “facebook.com” 并返回 “facebook.com”
browserHistory.back(1); // 你原本在浏览 “facebook.com” ,后退到 “google.com” 并返回 “google.com”
browserHistory.forward(1); // 你原本在浏览 “google.com” ,前进到 “facebook.com” 并返回 “facebook.com”
browserHistory.visit(“linkedin.com”); // 你原本在浏览 “facebook.com” 。 访问 “linkedin.com”
browserHistory.forward(2); // 你原本在浏览 “linkedin.com” ,你无法前进任何步数。
browserHistory.back(2); // 你原本在浏览 “linkedin.com” ,后退两步依次先到 “facebook.com” ,然后到 “google.com” ,并返回 “google.com”
browserHistory.back(7); // 你原本在浏览 “google.com”, 你只能后退一步到 “leetcode.com” ,并返回 “leetcode.com”

这题就是双向链表法一个很好的使用示例,解题代码如下:

typedef struct {char *s;int  now_po;struct BrowserHistory *pre;struct BrowserHistory *next;struct BrowserHistory *now;} BrowserHistory;int length;BrowserHistory* browserHistoryCreate(char * homepage) {BrowserHistory* b=(BrowserHistory*)malloc(sizeof(BrowserHistory));b->pre=NULL;b->next=NULL;b->s=homepage;b->now=b;b->now_po=0;length=0;return b;}void browserHistoryVisit(BrowserHistory* obj, char * url) {BrowserHistory *p;BrowserHistory* b=(BrowserHistory*)malloc(sizeof(BrowserHistory));// printf("%s ",url);b->s=url;p=obj->now;b->next=p->next;p->next=b;b->pre=p;length=p->now_po+1;b->now_po=p->now_po+1;obj->now=b;}char * browserHistoryBack(BrowserHistory* obj, int steps) {printf("back");BrowserHistory *p=obj->now;while(steps!=0){if(p->now_po==0){break;}steps--;//  printf("pre %s ",p->s);p=p->pre;}obj->now=p;return p->s;}char * browserHistoryForward(BrowserHistory* obj, int steps) {printf("froword");BrowserHistory *p=obj->now;while(steps!=0){if(p->now_po==length){break;}steps--;p=p->next;}obj->now=p;return p->s;}void browserHistoryFree(BrowserHistory* obj) {free(obj);}/*** Your BrowserHistory struct will be instantiated and called as such:* BrowserHistory* obj = browserHistoryCreate(homepage);* browserHistoryVisit(obj, url);* char * param_2 = browserHistoryBack(obj, steps);* char * param_3 = browserHistoryForward(obj, steps);* browserHistoryFree(obj);
*/

相关内容

热门资讯

原创 人... 2023年,联合国人口司报告:印度人口超过了中国。中国丢掉了“世界第一人口大国”的帽子,马路上娃娃车...
缓解亏损压力,消息称Meta明... IT之家 5 月 30 日消息,科技媒体 The Information 今天(5 月 30 日)发...
原创 大... " 作者丨追命 编辑丨坚果 封面来源丨Unsplash " 近日,刘强东的“兄弟论”又一次刷屏。...
美国软件股逆袭,创2001年以... Snowflake与Okta强劲财报提振情绪,市场对AI颠覆软件行业的极端悲观预期开始松动。 Sno...
原创 5... 一夜之间,黄金价格犹如经历一场惊心动魄的“踩踏”,重重跌破了4500美元/盎司的心理大关,昔日被视为...
德康农牧(02419.HK)获... 格隆汇5月29日丨根据联交所最新权益披露资料显示,2026年5月28日,德康农牧(02419.HK)...
37岁公司董事长、车手张秀军比... 每经编辑|何小桃 5月29日,2026中国环塔国际拉力赛组委会发布通告:5月26日,在2026中国...
原创 人... 观察者网报道,本周在纽约经济俱乐部的一场专题讨论会上,加拿大总理卡尼发表了一番引发广泛关注的讲话。这...
反复尿路感染别只吃消炎药 很多人尿频、尿急、尿痛一发作,就自行购买消炎药服用,症状消失就立刻停药,这是尿路感染反复发作的主要原...
原创 散... 最后再说一遍:散户对白酒、地产的理解是大错特错了…… 投资是投资,现实是现实,行业是行业,大家必须分...
从Vinexpo Asia 2... 5月26日至28日,Vinexpo Asia – Be Spirits – Be No 2026亚洲...
原创 金... 今天去商场转了一圈,金店柜台前的人比上个月少了很多。 看了下当天挂牌价,东方大国黄金的首饰金报在13...
消费资产今日全线回暖,港A两套... 今日消费板块呈现明显回暖态势,港股新消费龙头表现抢眼。 泡泡玛特(09992.HK)、 安踏体育(0...
滴滴开放日走进判责客服:讨论纠... 5月28日,滴滴开放日在大连客服职场举办。活动聚焦“体验与服务”,邀请司机、乘客、媒体、行业专家等各...
中餐出海进阶:狂飙过后,该算账... 近几年,随着出境游热度攀升,越来越多的国人发现,不管是东南亚的市井街头,还是欧美的核心商圈,总能轻易...
A股“芯”征程:5%科技龙头虹... A股上演“冰火两重天”:一边是白酒、地产等传统“核心资产”持续遇冷,一边是芯片、半导体等新兴题材不断...
上海大模型龙头,启动A股上市! 来源:智东西 新一代旗舰模型也即将发布。 作者 | 陈骏达 编辑 | 李水青 智东西5月30日报道...
MiniMax正式启动A股IP... 据证监会官网IPO辅导公示系统显示,MiniMax已向上海证监局提交A股IPO辅导备案,中信证券担任...
三重利好共振推动港股内房股反弹... 5月29日,港股内房股显著拉升, 碧桂园(02007.HK)涨幅超38%, 融创中国(01918.H...
利空突袭,全线大跌!马斯克,紧... 在IPO前夕,马斯克的SpaceX突遭“拉黑”。 据最新消息,丹麦养老基金AkademikerPen...