当前位置: 首页 > wzjs >正文

中国建设银行甘肃省分行 官方网站单页面网站可以做自适应网站吗

中国建设银行甘肃省分行 官方网站,单页面网站可以做自适应网站吗,广告公司名称取名,16岁的做兼职在什么网站好本题出自LeetCode1472.设计浏览器历史记录 题目 你有一个只支持单个标签页的 浏览器 ,最开始你浏览的网页是 homepage ,你可以访问其他的网站 url ,也可以在浏览历史中后退 steps 步或前进 steps 步。 请你实现 BrowserHistory 类&#xff1…

本题出自LeetCode1472.设计浏览器历史记录


题目 

你有一个只支持单个标签页的 浏览器 ,最开始你浏览的网页是 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"

基础代码框架 

class BrowserHistory {public BrowserHistory(String homepage) {}public void visit(String url) {}public String back(int steps) {}public String forward(int steps) {}
}

 题解 一

class BrowserHistory {private List<String> timeslices = new ArrayList<>();private final String homepage;private int idx = 0;public BrowserHistory(String h) {homepage = h;timeslices.add(homepage);}public void visit(String url) {  timeslices = new ArrayList(timeslices.subList(0, idx + 1));timeslices.add(url);idx++;}public String back(int steps) {if (idx - steps <= 0) {idx = 0;return homepage;}idx = idx - steps;return timeslices.get(idx);}public String forward(int steps) {if (steps + idx >= timeslices.size() ) {idx = timeslices.size() - 1;return timeslices.get(idx);}idx = idx + steps;return timeslices.get(idx);}
}

解题思路一

为了实现一个支持后退和前进功能的浏览器历史记录管理类,我们需要模拟浏览器的历史记录行为。

 
  1. 数据结构选择

    • 使用一个列表(List<String>)来存储历史记录,其中每个元素代表一个页面的 URL。
    • 使用一个整数变量(idx)来跟踪当前所在的页面位置。
  2. 初始化

    • 在类的构造函数中,将主页(homepage)添加到列表中,并将索引初始化为 0,表示当前位于主页。
  3. 访问新页面

    • 当访问新页面时,需要将当前页面及之后的所有前进记录清空。这可以通过截断列表到当前索引 + 1 的位置,然后添加新的 URL 并增加索引来实现。
  4. 后退操作

    • 后退操作需要根据给定的步数(steps)调整当前索引。如果步数超过可后退的范围,则将索引调整到 0(主页)。
    • 返回调整后的当前页面 URL。
  5. 前进操作

    • 前进操作需要根据给定的步数(steps)调整当前索引。如果步数超过可前进的范围,则将索引调整到列表的最后一个位置。
    • 返回调整后的当前页面 URL。
 

破题关键

 
  1. 初始化历史记录

    • 在构造函数中,将主页添加到列表中,并设置初始索引为 0。
  2. 处理访问新页面

    • 当访问新页面时,截断列表到当前索引 + 1 的位置,以清空所有前进记录。
    • 将新 URL 添加到列表末尾,并将索引增加 1。
  3. 处理后退操作

    • 计算后退后的索引位置,如果步数超过可后退的范围,则将索引设置为 0。
    • 返回后退后的当前页面 URL。
  4. 处理前进操作

    • 计算前进后的索引位置,如果步数超过可前进的范围,则将索引设置为列表的最后一个位置。
    • 返回前进后的当前页面 URL。

题解二

class BrowserHistory {String[] history=new String[5001];int index;int bound;public BrowserHistory(String homepage) {history[0]=homepage;index=0;bound=0;}public void visit(String url) {index++;history[index]=url;bound=index;}public String back(int steps) {if(steps>index){index=0;return history[index];}index-=steps;return history[index];}public String forward(int steps) {if(index+steps>bound){index=bound;return history[index];}index+=steps;return history[index];}
}

解题思路二

为了实现一个支持后退和前进功能的浏览器历史记录管理类,我们需要模拟浏览器的历史记录行为。以下是实现该类的详细思路:

 
  1. 数据结构选择

    • 使用一个列表(history)来存储浏览的历史记录,每个元素代表一个访问的 URL。
    • 使用两个指针:index 表示当前所在的页面位置,bound 表示历史记录的最远位置(即访问过的新页面的最远索引)。
  2. 初始化

    • 在构造函数中,初始化历史记录列表,将主页设置为第一个元素,并将 index 和 bound 初始化为 0。
  3. 访问新页面

    • visit 方法用于访问新页面。每次访问新页面时,index 增加 1,新的 URL 被存储在 history 列表中,并更新 bound 为当前 index,表示新的最远位置。
  4. 后退操作

    • back 方法用于后退指定的步数。如果后退的步数超过当前可以后退的最大步数(即 index 的值),则直接回到主页(index 设为 0)。否则,index 减去指定的步数。
  5. 前进操作

    • forward 方法用于前进指定的步数。如果前进的步数超过当前可以前进的最大步数(即 index 到 bound 的距离),则直接回到最远位置(index 设为 bound)。否则,index 加上指定的步数。
 

破题关键

 
  • 历史记录的存储:使用一个列表来存储所有访问过的 URL,确保能够快速访问和修改。
  • 指针的维护:通过 index 和 bound 来维护当前页面的位置和历史记录的最远位置,确保后退和前进操作的高效性。
  • 边界条件处理:在后退和前进操作中,处理超出边界的情况,确保不会越界访问历史记录列表。

 制作不易,您的关注与点赞是我最大的动力! 欢迎订阅!


文章转载自:

http://NZlna1kn.sfzwm.cn
http://8mkLw0aR.sfzwm.cn
http://0xlWaXcO.sfzwm.cn
http://ujyeDN8W.sfzwm.cn
http://wY7ecI5l.sfzwm.cn
http://owQb2h5n.sfzwm.cn
http://1fgaPTCl.sfzwm.cn
http://1jUxTKYO.sfzwm.cn
http://rlcjkBqU.sfzwm.cn
http://8gQRJ1Lr.sfzwm.cn
http://coAfLsQz.sfzwm.cn
http://xfOOhcg0.sfzwm.cn
http://z5NiNB8Q.sfzwm.cn
http://QsHJllT9.sfzwm.cn
http://TKybedBw.sfzwm.cn
http://cDCVohRN.sfzwm.cn
http://pQzns13w.sfzwm.cn
http://HM7N4Zcw.sfzwm.cn
http://8rcxgYJk.sfzwm.cn
http://Sn6tlwXP.sfzwm.cn
http://eoo4tHOs.sfzwm.cn
http://9Y7aBGWM.sfzwm.cn
http://i5zQ9rqL.sfzwm.cn
http://MgInpRsY.sfzwm.cn
http://zhFyTlPR.sfzwm.cn
http://rUQG431R.sfzwm.cn
http://IrYLnqVl.sfzwm.cn
http://88zxf8F5.sfzwm.cn
http://tYqruS8B.sfzwm.cn
http://byhJUPHJ.sfzwm.cn
http://www.dtcms.com/wzjs/626929.html

相关文章:

  • 花钱做的网站本人可以关闭吗wordpress 经典网站
  • 平台网站设计优秀企业网站欣赏店名设计
  • 常德自助建站seo软件工程包括什么专业
  • 公司的网站建设费进入什么科目资源搜索引擎搜索神器网
  • 网站服务器租用怎样收费上海工商网查询企业信息查询系统
  • 广州澄网站建设公司discuz论坛使用方法
  • 个人网站建设规划实践报告大型电子商务网站需要配服务器
  • 机关门户网站建设意义免费建站团队
  • 做新闻封面的网站郑州做网站公
  • mysql网站后台管理系统下载住房和城乡建设部网站倪虹
  • 网站导航功能事件营销成功案例有哪些
  • 百度推广方式seo服务合同
  • 太仓网站开发企业怎么搭建网站
  • 网站建设设计培训班wordpress搜索页如何建
  • 网站开发的经费预算做的精美的门户网站推荐
  • 显示官网字样的网站怎么做搜索网站定制公司
  • 推荐几个安全没封的网站2021ppt模板下载简约
  • asp网站数据库扫描wordpress多语言插件:qtranslate
  • 建站不用域名直接用ip可以吗只选设计师的网站
  • 工程资料类网站怎么做不拦截网站的浏览器
  • 网站怎么做微博认证宁波网站建设公司
  • 信息网站制作网站开发 先做前端吗
  • 网站后缀是xyz指得是什么安全网站建设
  • 云栖建站公司网站建设比较好的公司
  • 网站的总体方案青岛网络科技有限公司
  • 建设施工合同备案在哪个网站江苏徐州网站建设
  • 定制做网站开发沈阳装修公司
  • 网站开发实战第二章域名转出过程网站能打开吗
  • 分类网站 模板网站维护要求
  • 网站如何选择关键词淘宝搜索排名