进行字符串去重操作
发布时间
阅读量:
阅读量
昨日笔试中出现了一道题目,要求在不额外开辟空间的前提下,消除字符数组中的重复元素。
解决思路大致如下:
借助字符串终止符 ‘\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') {
全部评论 (0)
还没有任何评论哟~
