leetcode 242. Valid Anagram

原题链接:242. Valid Anagram

【思路1-Java】:

将字符串转化为字符数组,然后排序,最后再比较两个字符串是否相等。

public class Solution {
    public boolean isAnagram(String s, String t) {
        char[] s1 = s.toCharArray();
        char[] t1 = t.toCharArray();
        Arrays.sort(s1);
        Arrays.sort(t1);
        return String.valueOf(s1).equals(String.valueOf(t1));     //将字符数组转化为字符串后再比较两字符串是否相等
    }
}

32 / 32 test cases passed. Runtime: 5 ms

【思路2-Java】:

建立一个容量为26大小的int,并将字母转化为int值——将字符串的每个字母char值减去‘a'得到,作为数组索引,字母出现次数作为数组值:

public class Solution {
    public static boolean isAnagram(String s, String t) {
        int[] count1 = new int[26];
        for(int i=0; i<s.length(); i++)
        	count1[s.charAt(i)-'a']++;
        for(int i=0; i<t.length(); i++)
        	count1[t.charAt(i)-'a']--;
        for(int i=0; i<26; i++)
        	if(count1[i] != 0) return false;
        return true;
    }
}
32 / 32  test cases passed. Runtime: 7 ms  Your runtime beats 59.12% of javasubmissions.

欢迎优化!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值