leetcode49—— 字母异位词分组

知识点

1字符串转字符串数组

char[] c=str.toCharArray();

2如何对字符串进行排序

先将字符串转化为  字符数组
再用Array.sort(char[] c);

3如何将字符数组 转化为字符串

String str=c.toSting;//是错的  toString是字符串才有的函数
正确写法:
String str=String.valueOf(char[]);

同理,可将 字符串 转化为对应的int型数组  Integer.valueOf(String)

4HashMap中尽量不要保存 字符数组  

        char[] c={'a','b','c'};
        System.out.println(c);
        Character[] u={'w','u'};
        System.out.println(u);
        HashMap<Integer,Character[]> h=new HashMap<>();
        h.put(3,u);
        System.out.println(h.values());

保存进哈希表的是地址,可将字符数组通过String.valueOf(char[] )转化为字符串

通过下图可见,保存的是字符数组的内存地址

 5对于HashMap返回value

hash.value()

源码中:

 是一个集合类型

 当然其他返回哈希表之后value的方法:

HashMap的迭代方法

题意:

 思路:

通过HashMap  +  字符数组排序

代码:

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        //字符串转化为字符串数组  s.toCharArray();
        //字符串排序  先转化为字符数组  在Arrays.sort(char[] );
        HashMap<String,List> hash=new HashMap();
        //String tem=null;
        char[] tem=null;
        List list=null;
        for(int i=0;i<strs.length;i++){
            tem=strs[i].toCharArray();
            Arrays.sort(tem);
            String ss=String.valueOf(tem);
            if(hash.containsKey(ss)){
                //如果已经有  那么应该加入List中
                list=hash.get(ss);
                list.add(strs[i]);//单独加入之后 如何加入 总的List呢
                hash.put(ss,list);
                //hash.put(tem,list.add(strs[i]));
            }else{
                list=new ArrayList();
                list.add(strs[i]);
                hash.put(ss,list);
            }
        }

        return new ArrayList(hash.values());
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值