去除字符串重复部分
来源:互联网 发布:微波炉的工作原理 知乎 编辑:程序博客网 时间:2024/05/03 12:44
昨天笔试有这么一个问题,去除一个字符数组的重复部分,不能开辟额外的空间。
思路大概如下:
利用字符串结束符 ‘\0’,和一个额外的下标index,从而实现原来字符数组的复用
1、对数组遍历,如果不为’\0’,做第二步
2、将当前元素的值赋给下标为index的数组,index往后移动一位
3、对当前元素之后的所有元素进行遍历,如果碰到和当前元素相同的,将其置为 ‘\0’
4、对数组遍历结束,index对应的数组值置 ‘\0’
5、这时候就得到了去重的字符数组,结束位置为index
代码如下:
public static void remove3(char[] array) { if (array == null || array.length <= 0) { return; } int len = array.length; int index = 0; for (int i = 0; i < len; i++) { if (array[i] != '\0') { array[index++] = array[i]; for (int j = i + 1; j < len; j++) { if (array[j] == array[i]) { array[j] = '\0'; } } } } array[index] = '\0'; int k = 0; StringBuffer sb = new StringBuffer(); while (array[k] != '\0') { sb.append(array[k++]); } System.out.println(sb.toString()); }
测试用例:
1、连续重复的:aabbccdd
2、非连续重复:abbjkjsab
0 0
- 去除字符串重复部分
- 两个字符串之间进行去除重复的部分
- java去除重复字符串
- java 字符串去除重复
- js去除重复字符串
- JS去除重复字符串
- 去除字符串重复数据
- 去除字符串重复数据
- JS去除重复字符串
- JS去除重复字符串
- 字符串去除重复字母
- js 字符串去除重复
- 去除重复字符串
- 字符串全排列,去除重复
- 去除字符串中的重复字符
- 去除字符串中重复字符
- oracle 去除重复字符串函数
- 【c++】字符串---去除重复字符
- 4.4系统让App最简单的实现沉浸式状态栏
- 利用MAVEN打包时,如何包含更多的资源文件
- Mac 设置环境变量、查看/添加PATH环境变量
- 石子归并问题(codevs 1048)
- windows command
- 去除字符串重复部分
- 通过反射了解泛型的本质
- Android Studio引用GitHub上的库 viewPagerIndicater
- 虚拟机(Vmware)怎么进入BIOS
- hbase小结
- 排序算法——选择排序
- Shell简介:什么是Shell,Shell命令的两种执行方式
- 【软考6】码制:原码、反码、补码、移码
- Linux内核定时器