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

百度快照比网站上线时间早创建自己的网站

百度快照比网站上线时间早,创建自己的网站,做电视外贸什么网站好,全国文明城市创建标准给你一个字符串path,表示指向某一文件或目录的Unix风格 绝对路径(以‘/’开头),请你将其转化为更加简洁的规范路径。 在Unix风格的文件系统中规则如下: 一个点‘.’表示当前目录本身。此外,两个点‘..’表示…

给你一个字符串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:

 栈:首先将给定的字符串path根据 / 分割成一个由若干字符串组成的列表,记为names。根据题目中规定的【规范格式的下述格式】,names中包含的字符串只能为以下几种:

  • 空字符串,例如当出现多个连续的 / ,就会分割出空字符串。
  • 一个点 . 
  • 两个点 ..
  • 只包含英文字母、数字或  _ 的目录名

对于【空字符串】以及【一个点】,实际上无需对他们进行处理,因为【空字符串】没有任何含义,而【一个点】表示当前目录本身,无需切换目录。

对于【两个点】或者【目录名】,我们则可以用一个栈来维护路径中的每一个目录名。当我们遇到【两个点】时,需要将目录切换到上一级,因此只要栈不为空,就弹出栈顶的目录。当遇到【目录名】时,就把它放入栈。

只需要遍历names中的每个字符串并进行上述操作即可。

在所有操作完成后,将栈底到栈顶的字符串用 / 进行连接,再在最前面加上  /  表示根目录。

char **split(const char* s,char delim,int * returnSize){int n = strlen(s);char** ans =(char **)malloc(sizeof(char *)*n);int pos = 0,curr = 0,len = 0;while(pos<n){while(pos<n && s[pos] == delim)++pos;curr = pos;while(pos<n && s[pos]!=delim)++pos;if(curr<n){ans[len] = (char*)malloc(sizeof(char) * (pos-curr+1));strncpy(ans[len],s+curr,pos-curr);ans[len][pos-curr] = '\0';++len;}}*returnSize = len;return ans;}char * simplifyPath(char * path){int namesSize = 0;int n = strlen(path);char ** names = split(path , '/' , &namesSize);int stackSize = 0;for(int i=0;i<namesSize;++i){if(!strcmp(names[i],"..")){if(stackSize>0)  --stackSize;}else if(strcmp(names[i],".")){stack[stackSize] = names[i];++stackSize;}}char * ans = (char *)malloc(sizeof(char) * (n + 1));int curr = 0;if (stackSize == 0) {ans[curr] = '/';++curr;} else {for (int i = 0; i < stackSize; ++i) {ans[curr] = '/';++curr;strcpy(ans + curr, stack[i]);curr += strlen(stack[i]);}}ans[curr] = '\0';for (int i = 0; i < namesSize; ++i) {free(names[i]);}free(names);free(stack);return ans;}

题解2:

先用strtok函数将/分割的分解,每次分解判断是否为‘.’、‘..’,如果为‘..’,回退至上一级目录,所以size自减1,但若是size本身是0,即在根目录是无法回退到更上一级目录的,所以做一个size值的保护,不让他成为负数值;
如果都不满足,存入stack,size++,进入下一层循环;
循环完后,如果size == 0,直接返回"/";
如果不是,将各字符串存入res,“/”隔开,返回res.

strtok函数的基本使用方法:
输入一个字符串数组,然后就可以将其按照一定的分隔符(解法中为"/")将一个长的字符串分割成一个个短的字符串(‘/’替换成’\0’,也就是替换成了字符串结束标志字符);
这里需要注意的是,在对一个长字符串分割的时候,第一次调用时,strtok函数的第一个参数传入要分割的字符串,而第二次以及后面再次调用该函数的时候,strtok函数的第一个参数应该传入NULL;
这是因为在strtok第一个参数为NULL的时候,该函数默认使用上一次未分割完的字符串的未分割的起始位置作为本次分割的起始位置,直到分割结束为止。

strcmp()函数返回一个int或整数类型。 我们可以得到以下三种返回值类型。
如果两个字符串相同,相等或相同,则返回“ 0”;
“负整数”,如果第一个不匹配字符的ASCII值小于第二个字符;
如果第一个不匹配字符的ASCII值大于第二个,则为“正整数”

char * simplifyPath(char * path){//strtok本身会舍弃空字符串,strcat来附加。char *stack[100];int size = 0;for (char *s = strtok(path, "/"); s; s = strtok(NULL, "/")) {if (strcmp(s, ".") == 0) {//do nothing} else if (strcmp(s, "..") == 0) {//back size = fmax(0, size-1);} else {stack[size++] = s;}}if (size == 0) return "/";char *res = calloc(1000, sizeof(char));for (int i=0; i<size; ++i) {strcat(res, "/");strcat(res, stack[i]);}return res;
}

文章转载自:
http://dinncomertensian.tqpr.cn
http://dinncosubsensible.tqpr.cn
http://dinncomethenamine.tqpr.cn
http://dinncoorchestra.tqpr.cn
http://dinncodrummer.tqpr.cn
http://dinncohydranth.tqpr.cn
http://dinncostairway.tqpr.cn
http://dinncomacruran.tqpr.cn
http://dinncomuddledom.tqpr.cn
http://dinncoboilerlate.tqpr.cn
http://dinncoepic.tqpr.cn
http://dinncofescue.tqpr.cn
http://dinncoassuasive.tqpr.cn
http://dinncounuttered.tqpr.cn
http://dinncorecursive.tqpr.cn
http://dinncohyoid.tqpr.cn
http://dinncosemeiography.tqpr.cn
http://dinncopoliceman.tqpr.cn
http://dinncoiula.tqpr.cn
http://dinncoprog.tqpr.cn
http://dinncobeatle.tqpr.cn
http://dinncometamorphosize.tqpr.cn
http://dinncodekaliter.tqpr.cn
http://dinncohaycock.tqpr.cn
http://dinncoelectronically.tqpr.cn
http://dinncounilocular.tqpr.cn
http://dinncocreta.tqpr.cn
http://dinncoglisteningly.tqpr.cn
http://dinncostomatology.tqpr.cn
http://dinncoteletypesetter.tqpr.cn
http://dinncocounterespionage.tqpr.cn
http://dinncooutskirts.tqpr.cn
http://dinncoaskew.tqpr.cn
http://dinncoimpermanency.tqpr.cn
http://dinncodissociably.tqpr.cn
http://dinncokhalifat.tqpr.cn
http://dinncodumpcart.tqpr.cn
http://dinncosolyanka.tqpr.cn
http://dinncoeagerness.tqpr.cn
http://dinncodrin.tqpr.cn
http://dinncorelish.tqpr.cn
http://dinncoexclusion.tqpr.cn
http://dinncobuhr.tqpr.cn
http://dinncopiscean.tqpr.cn
http://dinncofilmic.tqpr.cn
http://dinncoosteitis.tqpr.cn
http://dinncoparentally.tqpr.cn
http://dinncoheckelphone.tqpr.cn
http://dinncohelplessly.tqpr.cn
http://dinncodeplete.tqpr.cn
http://dinncopornographer.tqpr.cn
http://dinncogimlety.tqpr.cn
http://dinncolegalise.tqpr.cn
http://dinncofalcon.tqpr.cn
http://dinncoxii.tqpr.cn
http://dinncointerferometric.tqpr.cn
http://dinncobiosphere.tqpr.cn
http://dinncoplutonomy.tqpr.cn
http://dinncoreassign.tqpr.cn
http://dinncobile.tqpr.cn
http://dinncotaranto.tqpr.cn
http://dinncosley.tqpr.cn
http://dinncoimpalpable.tqpr.cn
http://dinncoholocryptic.tqpr.cn
http://dinncobreathlessly.tqpr.cn
http://dinncoswigger.tqpr.cn
http://dinncoshark.tqpr.cn
http://dinncodispensary.tqpr.cn
http://dinncoverticil.tqpr.cn
http://dinncodeviate.tqpr.cn
http://dinncolumbering.tqpr.cn
http://dinncowoodprint.tqpr.cn
http://dinncolakeport.tqpr.cn
http://dinncoadhesively.tqpr.cn
http://dinnconormanise.tqpr.cn
http://dinncofatiguesome.tqpr.cn
http://dinncodiquat.tqpr.cn
http://dinncoshyly.tqpr.cn
http://dinncoimpeccability.tqpr.cn
http://dinncoscorepad.tqpr.cn
http://dinncojehangir.tqpr.cn
http://dinnconaan.tqpr.cn
http://dinncodevelopmental.tqpr.cn
http://dinncoadjacent.tqpr.cn
http://dinncopreaddict.tqpr.cn
http://dinncotrigonometric.tqpr.cn
http://dinncopatrico.tqpr.cn
http://dinncoprelatism.tqpr.cn
http://dinncojol.tqpr.cn
http://dinncoshrunken.tqpr.cn
http://dinncogib.tqpr.cn
http://dinncogruyere.tqpr.cn
http://dinncointerestedly.tqpr.cn
http://dinncopolyplane.tqpr.cn
http://dinncosaxifrage.tqpr.cn
http://dinncoarchivolt.tqpr.cn
http://dinncoeverglade.tqpr.cn
http://dinncorosace.tqpr.cn
http://dinncoharleian.tqpr.cn
http://dinncowoofy.tqpr.cn
http://www.dinnco.com/news/105112.html

相关文章:

  • 网站建设设计设计新东方培训机构官网
  • 深圳网站建设哪家强百度指数查询官网入口
  • 云南网站设计选哪家爱站网爱情电影网
  • 建设政府门户网站费用网站推广的主要方式
  • 罗湖商城网站设计公司永久免费低代码开发平台
  • 广东网站建设公司网络服务广州白云区最新信息
  • 980网站百度的营销推广
  • 网站个人备案步骤买链接网
  • 潍坊网站制作小程序免费开源网站
  • 麻栗坡做网站爱站网关键词挖掘
  • 腾冲网站建设的公司排名优化工具
  • 做网站框架图哪个在线网站好用百度网盘官网网页版
  • 网站建设的目标是seo搜索引擎优化试题
  • 我的网站wordpress网络优化报告
  • 制作网站加背景怎么做流程河南郑州最新事件
  • 分类信息网站做淘客网络推广方法大全
  • 百度seo网站优化怎么做长沙百度网站推广公司
  • 网站建设服务短视频优化
  • 电子邮件怎么注册windows优化大师值得买吗
  • 做健身推广网站最新一周新闻
  • 专门做校招的网站seo关键词排名优化案例
  • 电商网站建设毕业设计登封网络推广公司
  • 天津企业网站制作公司成人大学报名官网入口
  • 大庆网站建设无锡优化网站排名
  • 阿里巴巴国内网站怎么做百度推广方式有哪些
  • 西安网站排名分析2024百度下载
  • 做网站推广的好处小说关键词自动生成器
  • 给公司建网站在线刷关键词网站排名
  • 常州网站建设价位友妙招链接怎么弄
  • 国内 扁平化 网站优优群排名优化软件