日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

49. 字母異位詞分組

 頭號碼甲 2020-03-11
給定一個字符串?dāng)?shù)組,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字符串。

示例:

輸入: ["eat", "tea", "tan", "ate", "nat", "bat"],
輸出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]

主要是如何分組效率最高,用hashmap,需要的解決問題是通過什么來判斷equal,最簡單是使用String

public List<List<String>> groupAnagrams(String[] strs) {
    List<List<String>> ret=new ArrayList();
    HashMap<String,List<String>> map=new HashMap();
    for(String s:strs){
        int[] record=new int[26];
        char[] array=s.toCharArray();
        for(char c:array) record[c-'a']++;
        String key="";
        for(int i=0;i<record.length;i++) key=key.concat(String.valueOf((char)('a'+i))).concat(record[i]+"");
        if(!map.containsKey(key)) map.put(key,new ArrayList());
        map.get(key).add(s);
    }
    for(String key:map.keySet()){
        List<String> list=map.get(key);
        ret.add(list);
    }
    return ret;
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多