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

建设部网标准下载网站做西班牙语网站

建设部网标准下载网站,做西班牙语网站,wordpress功能主题,前端角度实现网站首页加载慢优化给你一个字符串path#xff0c;表示指向某一文件或目录的Unix风格 绝对路径#xff08;以‘/’开头#xff09;#xff0c;请你将其转化为更加简洁的规范路径。 在Unix风格的文件系统中规则如下#xff1a; 一个点‘.’表示当前目录本身。此外#xff0c;两个点‘..’表示… 给你一个字符串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(posn){while(posn s[pos] delim)pos;curr pos;while(posn s[pos]!delim)pos;if(currn){ans[len] (char*)malloc(sizeof(char) * (pos-curr1));strncpy(ans[len],scurr,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 i0;inamesSize;i){if(!strcmp(names[i],..)){if(stackSize0) --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 i0; isize; i) {strcat(res, /);strcat(res, stack[i]);}return res; }
http://www.hkea.cn/news/14472161/

相关文章:

  • 网站站点怎么做淄博网络公司做网站的电话
  • 自己开网站怎么开谷歌在线浏览器免费入口
  • 网站建立需要多少钱php网站开发框架
  • 百度有哪些网站可免费做软件推广国外大气网站欣赏
  • 长春建站程序杭州定制网站制作
  • net建站系统宝安区建设工程交易服务中心
  • 电子商务网站建设作用建个什么网站好呢
  • 哈密市建设局网站洛可可
  • 懒人手机网站模板wordpress淘宝组件插件
  • 网页设计做一个介绍自己的的网站wordpress 表单
  • 铝合金做网站做企业官网用什么开发
  • 网站是做推广好还是优化好百度总部公司地址在哪里
  • 网站引导页怎么做自己做静态网站的步骤
  • 公司网站制作专业公司合租网站设计
  • 提高网站公信力 单仁北京手机软件开发公司
  • 橘子建站网站设置gif禁用
  • 门户网站 商城系统常用的网络营销推广方法有哪些
  • 买软件的网站建设国外免费wordpress主题
  • 专做男装的网站pc和移动版网站
  • 招远网站制作网站被黑了你会怎么想你该怎么做
  • 一个网站空间可以做多少个网站广西互联网营销公司
  • 苏州外贸网站制作成都网页编辑器开发
  • 沧州网站建设公司翼马公司做网站的价格
  • 佛山市南海区水利投资建设有限公司网站wordpress 会议主题
  • 网站里的活动专题栏怎么做域名解析网站登录
  • 做网站需要哪些人手网页制作与网站建设完全学习手册pdf
  • 营销型网站建设广州常州网络推广网站
  • wordpress主题有广告seo官网优化
  • 免费个人网站模板下载郑州网站设计汉狮
  • 中国核工业第二二建设有限公司是国企吗天津seo选天津旗舰科技a