Given two strings s and t , write a function to determine if t is an anagram of s.數組
Example 1:spa
Input: s = "anagram", t = "nagaram"
Output: true
複製代碼
Example 2:code
Input: s = "rat", t = "car"
Output: false
複製代碼
這道題其實不難,做爲easy的題目來講,難度還ok。cdn
基本上無非就是用hashmap之類的進行計數,統計不一樣字符的出現個數。blog
若是出現次數相同互爲異位字。string
與此同理,若是連長度都不一樣那直接false結束。hash
這邊我採用了數組進行統計,也是相對而言比較簡單的一種方式。it
代碼以下:io
class Solution {
private int[] S = new int[128];
private int[] T = new int[128];
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) return false;
for (int i = 0, l = s.length(); i < l; i++) {
S[s.charAt(i)]++;
}
for (int i = 0, l = t.length(); i < l; i++) {
T[t.charAt(i)]++;
}
for (int i = 0; i < 128; i++) {
if (S[i] != T[i]) return false;
}
return true;
}
}
複製代碼
利用ASCII的規則,其實每一個字母都有對應的數字好比A就是65,具體對應關係看下錶: function
因此實際上咱們真正利用到的也就是65-122之間的字母,由於數組是經過index來獲得對應的值。也就是說咱們利用數字來對應字母,value來標記其出現次數,這樣就能驗證對應的字母出現個數從而方便統計。