242. Valid Anagram (驗證異位字)

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來標記其出現次數,這樣就能驗證對應的字母出現個數從而方便統計。

相關文章
相關標籤/搜索