[leetcode]Valid Anagram

2622 ワード

タイトルは以下の通りです.
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.
Note: You may assume the string contains only lowercase alphabets.
2つの文字列をあげて、使うかどうかを聞くアルファベットと個数は同じです.
どちらも小文字なので、2つの配列を開いて最後に比較すればいい(以下のFollow upの解決はmapを使うことができます)
コードを添付:
public class Solution {
    public boolean isAnagram(String s, String t) {
        if(s.length() != t.length()) return false;
        if(s == "" && t == "") return true;
        int arr[] = new int[26];
        int arrTmp[] = new int[26];     
        int i;
        for(i = 0; i < 26; i++){
            arr[i] = 0;
            arrTmp[i] = 0;
        }
        for(i = 0; i < s.length(); i++){
            arr[s.charAt(i) - 'a'] ++;
            arrTmp[t.charAt(i) - 'a'] ++;
        }
        boolean flag = true;
        for(i = 0; i < 26; i++){
            if(arr[i] != arrTmp[i]){
                flag = false;
                break;
            }
        }
        return flag;
    }
}

タイトルリンク:https://leetcode.com/problems/valid-anagram/