Anagrams

来源:互联网 发布:淘宝买家申请换货 编辑:程序博客网 时间:2024/06/05 06:32

Given an array of strings, return all groups of strings that are anagrams.


注意

All inputs will be in lower-case

样例

Given a string list: ["lint","intl","inlt","code"]

return ["lint","inlt","intl"]

标签 Expand 
Hash Table String
public class Solution {    /**     * @param strs: A list of strings     * @return: A list of strings     */    public List<String> anagrams(String[] strs) {        Map<String,Integer> map = new HashMap<String,Integer>();        List<String> res = new ArrayList<String>();        for(int k=0;k<strs.length;k++){            String str=strs[k];            // str 排序        <span style="white-space:pre"></span>char st[]=str.toCharArray();            for(int i=0;i<st.length;i++)                for(int j=st.length-1;j>i;j--)                    if(st[j-1]>st[j]){                        char tmp=st[j];                        st[j]=st[j-1];                        st[j-1]=tmp;                    }                                if(!map.containsKey(new String(st)))                map.put(new String(st),k);            else {                int p = map.get(new String(st));                if(p!=-1){                    res.add(strs[p]);                    map.put(new String(st),-1);                }                res.add(str);            }        }        return res;    }}


0 0
原创粉丝点击