美文网首页
(算法)去除字符串中的重复字符(时间复杂度)

(算法)去除字符串中的重复字符(时间复杂度)

作者: 一叶书生 | 来源:发表于2020-10-19 13:13 被阅读0次

1.一般会想到遍历字符串,去除重复的字符,这样时间复杂度是O(n²),时间复杂度太高。

static String sub(String str){

StringBuffer result =newStringBuffer();

List list =new ArrayList();

char[] cs = str.toCharArray();

for(int i=0; i<cs.length; i++){

if(!list.contains(cs[i])){

result.append(cs[i]);

list.add(cs[i]);

}

}

returnresult.toString();

}

2.再仔细想一想

用java的String的indexOf方法来达到字符串去重的目的,indexOf的功能是返回指定字符在此字符串中第一次出现处的索引:

public static String QuChong(String str){

        StringBuilder sb=new StringBuilder();

        for(int i=0;i<str.length();i++){

            if(str.indexOf(str.charAt(i))==i){

                //第一次出现

                sb.append(str.charAt(i));

            }

        }

        String result=sb.toString();

        return result;

    }

相关文章

网友评论

      本文标题:(算法)去除字符串中的重复字符(时间复杂度)

      本文链接:https://www.haomeiwen.com/subject/nsukmktx.html