代码面试题:Delete duplicated char in string

来源:互联网 发布:淘宝联名卡怎么申请 编辑:程序博客网 时间:2024/06/06 02:51

Input: "nanananaa! baaaaatmaan! batman!"

Output: "na! btm"


使用set的做法:时间复杂度O(n)

    public String deleteDuplicate(String A) {    if (A == null || A.length() <= 1) {    return A;    }          char str[] = A.toCharArray();      LinkedHashSet<Character> hs = new LinkedHashSet<Character>();      for (char a : str) {      hs.add(a);      }            StringBuilder sb = new StringBuilder();      for (Character c : hs) {      sb.append(c);      }      return sb.toString();    }


不使用另外的数据结构的做法:时间复杂度O(n^2)

public String deleteDuplicate(String A) {    if (A == null || A.length() <= 1) {    return A;    }        String result = "";    for (int i = 0; i < A.length(); i++) {    if (!result.contains("" + A.charAt(i))) {    result += A.charAt(i);    }    }    return result;          }

0 0
原创粉丝点击