标签:space 空格 length let 字符串 替换 刷题
一、题目
二、重点难点分析
1.我们应该如何去替换空格,常规思路是从头扫到尾扫描字符串,每次碰到空格就替换,由于是把一个字符替换成三个字符,我们必须要把空格后面所有空格的字符都要后移两位,否则就有两个字符会被覆盖
2.我们可以换个思路,从后移动,设置两个指针,一个从旧字符串长度尾巴扫,一个从新字符串总长度尾部扫,扫整个字符串,记录空格数,因为新的字符串(替换)是旧字符串的两倍(一个空格一个位,替换需要三个位,还有两个,所以替换后的总长度要加上空格*2的数),所以新的字符串 = 旧字符串 +空格数乘以二;
3.因为我们是从后扫到头,终点的标志在 当 旧指针(旧字符串) 等于 新指针(新字符串) 就停止。
三、代码分析
1 /** 2 * @param {string} s 3 * @return {string} 4 */ 5 var replaceSpace = function(s) { 6 s = s.split(''); 7 let ordL = s.length; 8 let space = 0; 9 10 for( let i = 0; i < ordL; i++){ 11 if( s[i] == ' ') space++; 12 } 13 s.length = s.length + space*2; 14 15 for( let i = ordL - 1 , j = s.length - 1 ; i >= 0 ; i-- , j--){ 16 if( s[i] != ' ') s[j] = s[i]; 17 else{ 18 s[j - 2] = '%'; 19 s[j - 1] = '2'; 20 s[j] = '0'; 21 j -= 2; 22 } 23 } 24 25 return s.join(''); 26 };
标签:space,空格,length,let,字符串,替换,刷题 来源: https://www.cnblogs.com/cn0wn/p/15861101.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。