字符串去重


這是我曾經的一道面試題:

1.雙向鏈表如何循環,如何插入一條數據?

2.一個字符串如何用最簡單的方法查出重復的字母? 
例如:String str = “agdbadbjja”

最優時間復雜度:

private static void test() { String str = "agdbadbjja"; Map<Object,Integer> maps = new HashMap<>(); for (int i = 0; i < str.length(); i++) { char charAt = str.charAt(i); if (maps.get(charAt) != null) { Integer integer = maps.get(charAt); maps.put(charAt, ++integer); }else{ maps.put(charAt, 1); } } Set<Object> keySet = maps.keySet(); for (Object string : keySet) { Integer integer = maps.get(string); System.out.println("key: " + string + " " + "value: " + integer); } }
打印結果:
key:  a value: 3 key:  b value: 2 key:  d value: 2 key:  g value: 1 key:  j value: 2

去重:

/** * 去重 */ private static void demo(){ String str = "agdbadbjja"; StringBuffer strb = new StringBuffer(); List lists = new ArrayList<>(); for (int i = 0; i < str.length(); i++) { if (!lists.contains(str.charAt(i))) { lists.add(str.charAt(i)); strb.append(str.charAt(i)); } } System.out.println(strb.toString()); }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM