当前位置: 首页 > 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/14380026/

相关文章:

  • 虹口免费网站制作四川旅游攻略
  • 帮非法集资公司做网站违法吗常见的网络营销手段
  • 做微商童装网站网络推广招聘信息怎么写
  • 眼镜网站建设青岛营销推广
  • 网页制作与网站建设试卷好网站建设公司服务
  • 备案 网站服务类型舟山网站建设优化
  • 分成型网站建设在线定制t恤
  • 345诛仙网站是谁做的凡科网
  • 公众号的微网站怎么做的做图网站有哪些
  • 网站建站对象如何在网上推广产品
  • 句容市住房和城乡建设局网站小程序推广的十种方式
  • 中国建设电工立网站龙华网站建设招商
  • 做一个网站得多少钱网站开发vue版本是什么
  • 山东平台网站建设价位网站建设现在好做吗
  • 网站域名更换全面的网站建设
  • 网站手机优化网站建设需要多少钱?
  • 全美网站建设公司企业建站免费模板
  • 成都网站优化哪家好网站建设布为网
  • 常平镇网站建设公司东莞长安网站设计公司
  • 如何建网站教程做公司网站主要需要什么科目
  • 网站建设业务好做吗广告公司推广平台
  • python 做企业网站港北网站建设
  • 益阳网站制作公司地址苏州工业园区限电
  • 装饰工程设计东莞网站建设vi设计百科
  • 北京网站建设 专业10年wordpress 微信商城
  • 怎么做网站截图企业网站asp源码
  • 企业网站建设经验分享深圳专业建站系统建站公司
  • 建网站地址杭州公司注销网站备案
  • 潍坊网站制作熊掌号做百度网站每年的费用多少钱
  • 北京网站如何制作艺术字体在线设计免费版