Advertisement

进行字符串去重操作

阅读量:

昨日笔试中出现了一道题目,要求在不额外开辟空间的前提下,消除字符数组中的重复元素
解决思路大致如下:
借助字符串终止符 ‘\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)

还没有任何评论哟~