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);
*/

相关内容

热门资讯

资金借道ETF逆市布局!看好港... 近期,港股市场表现低迷,恒生指数与恒生科技指数持续震荡下行,港股跌跌不休的走势让不少投资者感到担忧。...
原创 全... 有人觉得这不过是市场波动,有人说这就是季节性调整,倒有专家搬出库存数据和消费习惯来解释,听起来有理有...
郑州“商转公”直还签约银行增至... 【大河财立方消息】3月3日,郑州住房公积金管理中心发布通知,根据《郑州住房公积金管理中心关于商业银行...
智谱和MiniMax“爆炒”后... 观点网AI独角兽“竞赛”日渐激烈。 近期市场消息显示,“AI六小虎”之一阶跃星辰正考虑于港交所IPO...
原创 3... 写在文章前的声明:在本文之前的说明:本文中所列的投资信息,只是一个对基金资产净值进行排行的客观描述,...
动销中国2026全面启航|首站... 链接报名参会 文丨中童传媒记者 玄铠 南风起,战鼓响。 2026年度动销中国全国市场深度调研,正式从...
李开复谈Anthropic指责... IT之家 3 月 3 日消息,零一万物 CEO、创新工场董事长李开复今天在微博发布视频,聊及前段时间...
马云新年现身云谷学校,和阿里蚂... 钛媒体App 3月3日消息,新年阿里开工第一站,马云与阿里、蚂蚁的核心管理层现身杭州云谷学校。谈及A...
前小米高管创业机器人,用“爆品... 文|富充 编辑|苏建勋 小雨智造创始人乔忠良身上,有着“小米系”具身智能创业者的典型特质:善于寻找落...
原创 不... 文前,分享一个明确的观点,3月份的上证指数还会创新高,4197点不是终点。 小凡A股的仓位其实就是上...
国际金价银价“过山车” 避险行... 中新经纬3月3日电 (宋亚芬)北京时间3月3日,国际市场上贵金属上演“过山车”行情。现货白银、黄金价...
一张不断更新的名单,藏着宝安制... 2026年,亚太经合组织(APEC)会议再度进入“中国时间”。担纲承办地、同时也是观察中国式现代化最...
“黑色星期二”!刚刚,欧美全线... 全球金融市场遭遇“黑色星期二”。 继亚太市场周二大跌后,欧洲交易时段,各大指数集体重挫,意大利富时M...
单日148基点!中间价升破6.... 3月3日,人民币对美元中间价大幅调升148个基点,报6.9088,达到34个月以来升值高点,单日升值...
金价再涨,水贝商家眼见“买卖金... 每经记者|赵景致 每经编辑|文多 “我们金店现在都是工艺品金,没有工费。”随着国际金价不断攀升,记...
淮北市市场监管局公布2025年... 近日,淮北市96家“名特优新”个体工商户认定名单正式出炉。其中,“知名类”个体工商户48家、“特色类...
贵州茅台:截至2月底已累计回购... 贵州茅台再次披露回购股份实施进展。 3月3日晚间,贵州茅台酒股份有限公司(贵州茅台,600519.S...
类风湿关节炎总复发?可能是“发... “我这类风湿怎么老是反反复复,药也吃了,怎么就控制不好呢?”这是患者最常问的问题之一。除了规范用药,...
安联投资考虑短期内押注美元 转自:财联社 【安联投资考虑短期内押注美元】财联社3月2日电,负责管理5800亿欧元(6790亿美元...
2026,AI 落地的分水岭之... 2026,AI 落地的分水岭之年 红熊AI 红熊AI 2026年3月2日 21:09 4人 2023...