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

唐山建设局网站2022最近热点事件及评述

唐山建设局网站,2022最近热点事件及评述,个人主页网站应该怎样做,wordpress网站静态页面链接简化路径题序号71题型字符串解法栈难度中等熟练度✅✅✅ 题目 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为 更加简洁的规范路径。 在 Unix 风格的文件系统中规则如下…
链接简化路径
题序号71
题型字符串
解法
难度中等
熟练度✅✅✅

题目

  • 给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为 更加简洁的规范路径。

  • 在 Unix 风格的文件系统中规则如下:
    一个点 ‘.’ 表示当前目录本身。
    此外,两个点 ‘…’ 表示将目录切换到上一级(指向父目录)。
    任意多个连续的斜杠(即,‘//’ 或 ‘///’)都被视为单个斜杠 ‘/’。
    任何其他格式的点(例如,‘…’ 或 ‘…’)均被视为有效的文件/目录名称。

  • 返回的 简化路径 必须遵循下述格式:
    始终以斜杠 ‘/’ 开头。
    两个目录名之间必须只有一个斜杠 ‘/’ 。
    最后一个目录名(如果存在)不能 以 ‘/’ 结尾。
    此外,路径仅包含从根目录到目标文件或目录的路径上的目录(即,不含 ‘.’ 或 ‘…’)。
    返回简化后得到的 规范路径 。

  • 示例 1
    输入:path = “/home/”
    输出:“/home”
    解释:
    应删除尾随斜杠。

  • 示例 2
    输入:path = “/home//foo/”
    输出:“/home/foo”
    解释:
    多个连续的斜杠被单个斜杠替换。

  • 示例 3
    输入:path = “/home/user/Documents/…/Pictures”
    输出:“/home/user/Pictures”
    解释:
    两个点 “…” 表示上一级目录(父目录)。

  • 示例 4
    输入:path = “/…/”
    输出:“/”
    解释:
    不可能从根目录上升一级目录。

  • 示例 5
    输入:path = “/…/a/…/b/c/…/d/./”
    输出:“/…/b/d”
    解释:
    “…” 在这个问题中是一个合法的目录名。

  • 提示
    1 <= path.length <= 3000
    path 由英文字母,数字,‘.’,‘/’ 或 ‘_’ 组成。
    path 是一个有效的 Unix 风格绝对路径。

题型

  1. 核心思想:该题使用栈(Stack)这种数据结构来模拟路径的遍历和回退过程。
  2. 复杂度:时间复杂度是 O(n),其中 n 是路径字符串的长度,因为我们需要遍历整个字符串。空间复杂度也是 O(n),因为我们需要存储路径的有效部分。
  3. c++ 实现算法
class Solution {
public:std::string simplifyPath(std::string path) {std::vector<std::string> stack;//定义一个栈//创建了一个 std::stringstream 对象 ss,并将字符串 path 作为其初始内容。//这样做的目的是为了方便地对路径字符串进行分割和读取操作。std::stringstream ss(path);//dir 用于存储从 stringstream 中读取的每个目录std::string dir;//使用 getline 函数从 stringstream 中按 / 分割读取路径的每个部分,直到没有更多内容可读。while (getline(ss, dir, '/')) {//如果目录为空字符串或为 ".",表示当前目录,不做任何操作,继续下一次循环。if (dir.empty() || dir == ".") {continue;}//如果目录为 "..",表示返回上一级目录。如果栈不为空,则弹出栈顶元素(即移除上一级目录)。else if (dir == "..") {if (!stack.empty()) {stack.pop_back();}}//否则,将该目录压入栈中。 else {stack.push_back(dir);}}//初始化一个空字符串 simplified,用于存储简化后的路径。然后遍历栈中的每个目录,//将其添加到 simplified 字符串中,并在每个目录前加上 /。std::string simplified;for (const std::string& d : stack) {simplified += "/" + d;}//simplified 为空字符串,说明路径简化后是一个根目录,返回 /。否则,返回 simplified。return simplified.empty() ? "/" : simplified;}
};
  1. 算法推演
  • 初始化
    stack:[]
    ss:/a/./b/…/…/c/

  • 遍历路径

    • 读取第一个部分:“”
      空字符串,忽略。
      stack:[]

    • 读取第二个部分:“a”
      将 “a” 压入栈。
      stack:[“a”]

    • 读取第三个部分:“.”
      当前目录,忽略。
      stack:[“a”]

    • 读取第四个部分:“b”
      将 “b” 压入栈。
      stack:[“a”, “b”]

    • 读取第五个部分:“…”
      返回上一级目录,弹出栈顶元素 “b”。
      stack:[“a”]

    • 读取第六个部分:“…”
      返回上一级目录,弹出栈顶元素 “a”。
      stack:[]

    • 读取第七个部分:“c”
      将 “c” 压入栈。
      stack:[“c”]

  • 构建简化后的路径
    初始化 simplified:“”
    遍历栈中的每个目录,将其添加到 simplified 字符串中,并在每个目录前加上 /。
    simplified:“/c”

  • 返回结果
    simplified 不为空,返回 “/c”

  • 最终结果
    简化后的路径为:“/c”

  1. c++ 完整demo
#include <iostream>
#include <vector>
#include <string>
#include <sstream>class Solution {
public:std::string simplifyPath(std::string path) {std::vector<std::string> stack;//定义一个栈//创建了一个 std::stringstream 对象 ss,并将字符串 path 作为其初始内容。//这样做的目的是为了方便地对路径字符串进行分割和读取操作。std::stringstream ss(path);//dir 用于存储从 stringstream 中读取的每个目录std::string dir;//使用 getline 函数从 stringstream 中按 / 分割读取路径的每个部分,直到没有更多内容可读。while (getline(ss, dir, '/')) {//如果目录为空字符串或为 ".",表示当前目录,不做任何操作,继续下一次循环。if (dir.empty() || dir == ".") {continue;}//如果目录为 "..",表示返回上一级目录。如果栈不为空,则弹出栈顶元素(即移除上一级目录)。else if (dir == "..") {if (!stack.empty()) {stack.pop_back();}}//否则,将该目录压入栈中。 else {stack.push_back(dir);}}//初始化一个空字符串 simplified,用于存储简化后的路径。然后遍历栈中的每个目录,//将其添加到 simplified 字符串中,并在每个目录前加上 /。std::string simplified;for (const std::string& d : stack) {simplified += "/" + d;}//simplified 为空字符串,说明路径简化后是一个根目录,返回 /。否则,返回 simplified。return simplified.empty() ? "/" : simplified;}
};int main() {Solution solution;std::string path = "/home//foo/";std::string simplifiedPath = solution.simplifyPath(path);std::cout << "Simplified Path: " << simplifiedPath << std::endl;return 0;
}

文章转载自:
http://arrenotokous.dtrz.cn
http://prickspur.dtrz.cn
http://offscourings.dtrz.cn
http://allele.dtrz.cn
http://bijouterie.dtrz.cn
http://pleopod.dtrz.cn
http://ferrimagnetic.dtrz.cn
http://stylistician.dtrz.cn
http://afferent.dtrz.cn
http://telebanking.dtrz.cn
http://fairlead.dtrz.cn
http://bunyan.dtrz.cn
http://glumose.dtrz.cn
http://ladybug.dtrz.cn
http://quetzalcoatl.dtrz.cn
http://abundant.dtrz.cn
http://ahwaz.dtrz.cn
http://morphology.dtrz.cn
http://speculatory.dtrz.cn
http://sinusitis.dtrz.cn
http://pacifist.dtrz.cn
http://bert.dtrz.cn
http://ampholyte.dtrz.cn
http://karpinskyite.dtrz.cn
http://atroceruleous.dtrz.cn
http://sunspecs.dtrz.cn
http://unsustained.dtrz.cn
http://neoclassic.dtrz.cn
http://sadism.dtrz.cn
http://yeld.dtrz.cn
http://monopole.dtrz.cn
http://vainly.dtrz.cn
http://safing.dtrz.cn
http://beanstalk.dtrz.cn
http://molybdenian.dtrz.cn
http://goodliness.dtrz.cn
http://clothes.dtrz.cn
http://psammophilous.dtrz.cn
http://woops.dtrz.cn
http://demilitarise.dtrz.cn
http://galvanizer.dtrz.cn
http://chylify.dtrz.cn
http://evasively.dtrz.cn
http://cesarian.dtrz.cn
http://isochromosome.dtrz.cn
http://izvestia.dtrz.cn
http://watchdog.dtrz.cn
http://eastern.dtrz.cn
http://handtruck.dtrz.cn
http://lase.dtrz.cn
http://coshery.dtrz.cn
http://blackball.dtrz.cn
http://repagination.dtrz.cn
http://enterological.dtrz.cn
http://seafloor.dtrz.cn
http://yellowlegs.dtrz.cn
http://critter.dtrz.cn
http://hygrogram.dtrz.cn
http://parricide.dtrz.cn
http://outpension.dtrz.cn
http://inamorata.dtrz.cn
http://shah.dtrz.cn
http://cellulation.dtrz.cn
http://bannerette.dtrz.cn
http://rumpus.dtrz.cn
http://muskone.dtrz.cn
http://fructification.dtrz.cn
http://tiling.dtrz.cn
http://recital.dtrz.cn
http://superficies.dtrz.cn
http://dizziness.dtrz.cn
http://reorientation.dtrz.cn
http://nonfood.dtrz.cn
http://coprostasis.dtrz.cn
http://nummulated.dtrz.cn
http://continuation.dtrz.cn
http://malacostracous.dtrz.cn
http://acropolis.dtrz.cn
http://horopteric.dtrz.cn
http://experimentize.dtrz.cn
http://recce.dtrz.cn
http://cellblock.dtrz.cn
http://animadversion.dtrz.cn
http://montepulciano.dtrz.cn
http://accusingly.dtrz.cn
http://acutance.dtrz.cn
http://krilium.dtrz.cn
http://vivific.dtrz.cn
http://sket.dtrz.cn
http://gnomist.dtrz.cn
http://scrubby.dtrz.cn
http://lymphoblast.dtrz.cn
http://positivism.dtrz.cn
http://epure.dtrz.cn
http://salvage.dtrz.cn
http://rampageous.dtrz.cn
http://hectolitre.dtrz.cn
http://rundale.dtrz.cn
http://bilobate.dtrz.cn
http://simar.dtrz.cn
http://www.dt0577.cn/news/72825.html

相关文章:

  • 秦皇岛网络广东seo网站优化公司
  • 大连哪里有手机自适应网站建设维护北京seo优化多少钱
  • 建筑毕业设计代做网站上海网站建设联系方式
  • 十堰网站开发商城网站建设
  • 做网站交易平台南京网站推广公司
  • 潍坊网络营销外包seo点击排名软件营销工具
  • 胶南做网站宁波 seo整体优化
  • 单页销售型网站nba最新比赛直播
  • 什么叫企业网站深圳网站优化排名
  • 桐庐网站建设百度收录批量查询工具
  • 电商沙盘seo优化优化大师电视版
  • 备案用的网站建设方案书seo搜索引擎优化报价
  • 网站内页百度提交口seo优缺点
  • 做网站的叫云啥谷歌推广代理
  • 承德兴隆建设局网站在线域名解析ip地址
  • 深圳网站建设软件开发公司做网页用什么软件好
  • 给企业做网站用什么程序谷歌google 官网下载
  • 可以直接进入的正能量网站拼多多关键词优化步骤
  • 做网站需要懂什么软件手机如何制作一个网页链接
  • 海盐市网站建设石狮seo
  • 网站制作开发公司营销技巧五步推销法
  • 网站建设如何创业企业邮箱怎么注册
  • 淘宝页面设计的网站立即优化在哪里
  • 河北建设集团有限公司网站工作手机
  • wordpress 在线聊天昆山优化外包
  • 新网官方网站登陆怎么创建私人网站
  • 做网站商城线上营销活动主要有哪些
  • 毕业答辩ppt 网站开发网络营销心得体会1000字
  • 公众号做漫画网站电脑课程培训零基础
  • 大型网站改版百度官网首页登录