Valid Anagram | leetcode 242 【Java解题报告】

Given two strings s and t, write a function to determine if t is an anagram of s.

For example,

s = "anagram", t = "nagaram", return true.

s = "rat", t = "car", return false.

【解题思路】:

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

【代码实现】:

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

【另一种实现】:

将字母 - '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

你可能感兴趣的:(java,LeetCode,valid,Anagram)