题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路:第一遍遍历得到空格数,可以计算得到新字符串的长度。第二遍用两个index,一个指向旧字符串的末尾,另一个指向新字符串的末尾。碰到空格就是使用%20替换。func replaceSpace(str []byte, length int) { count := 0 // 遍历一遍字符串, 统计字符出现的数目, 计算替换后的字符串长度 for i:=0; i<length; i++ { if str[i] == ' '{ count++ } } newlength := length + count*2 // 两个index,一个指向length-1, 另一个指向newlength-1,遍历一遍字符串,完成替换 for l,nl := length-1,newlength-1; l>=0 && nl>=0; { if str[l]==' '{ str[nl] = '0' nl-- str[nl] = '2' nl-- str[nl] = '%' nl-- l-- } else { str[nl] = str[l] nl-- l-- } } }
标签:nl,--,空格,str,字符串,替换 来源: https://www.cnblogs.com/dingxiaoqiang/p/14629059.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。