java 不复制字符串前提下替换字符串中的空格算法实现O(n)
来源:互联网 发布:网络带来的利与弊简写 编辑:程序博客网 时间:2024/05/16 14:23
场景:在不复制字符串前提下,将某一字符串中空格替换为”%20”
思路:在不复制字符串前提下,如果采取从前往后遍历字符串,那么除了第一个空格之外,后面的空格的移动次数都不止一次。所以采取从后往前遍历的方式,先计算出字符串空格数,然后对字符串进行扩容,使用两个指针进行一前一后遍历即可实现
算法实现如下
/** * 将字符串中空格替换为"%20"算法 * @param string * @param length char数组总容量 */ public void replaceBlank(char[] string,int length) { if(string==null||length<=0){ return; } int count = 0; int len = 0; while(string[len]!='\0'){ len++; if(string[len]==' '){ count++; } } int newLen = len + 2*count; if(newLen>length){ return; } len--; newLen--; while(newLen>=0&&len<newLen){ if(string[len]==' '){ string[newLen--] = '0'; string[newLen--] = '2'; string[newLen--] = '%'; len--; }else{ string[newLen] = string[len]; len--; newLen--; } } }
0 0
- java 不复制字符串前提下替换字符串中的空格算法实现O(n)
- 字符串中的空格替换JAVA实现
- 字符串替换--替换字符串中的空格为$$$。要求时间复杂度为O(N)
- 算法:替换字符串中的空格
- Java替换字符串中的空格
- C++用%20替换字符串中的空格(O(n)的时间效率)
- 替换字符串中的空格为$$$。要求时间复杂度为O(N)
- 替换字符串中的空格为$$$。要求时间复杂度为O(N)
- 【每日一题】替换字符串中的空格为$$$。要求时间复杂度为O(N)
- 剑指offer算法 java实现 替换字符串空格
- 剑指offer算法 java实现 替换字符串空格
- 剑指offer算法 java实现 替换字符串空格
- O(n)实现替换空格
- 替换字符串中的空格(C++/Java实现)
- 字符串替换空格算法
- 算法-字符串替换空格
- 替换字符串中的空格
- 替换字符串中的空格
- PHP过滤重复的值
- HTML5新控件 - 颜色选择器
- MD5加密
- 在Eclipse的Debug页签中设置虚拟机参数
- String转换成时间戳(String Date 时间戳)
- java 不复制字符串前提下替换字符串中的空格算法实现O(n)
- 排序算法之Bubble sorts and variants
- nginx, tomcat 集群
- 19. Remove Nth Node From End of List
- BMP格式、读写
- 对Python面向对象的理解
- Hibernate含义
- ILmerge 合并多个dll,并且设置默认程序集
- DataTable的数据去重