Valid Anagram

Valid Anagram

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.

anagram: n.相同字母異序詞
題目較簡單,我就不翻譯了.
原題鏈接: https://leetcode.com/problems/valid-anagram/

該題比較簡單, 思路也很簡單.就是比較兩者之間的字母直方圖是否匹配.

bool isAnagram(char* s, char* t) {
    int sSize = strlen(s);
    int tSize = strlen(t);
    if (sSize != tSize) {
        return false;
    }

    const int MAX_SIZE = 26;
    int patternS[MAX_SIZE];
    int patternT[MAX_SIZE];
    int index = -1;
    memset(patternS, '\0', MAX_SIZE * sizeof(int));
    memset(patternT, '\0', MAX_SIZE * sizeof(int));

    for (int i = 0; i < sSize; ++i) {
        ++patternS[(int) (s[i] - 'a')];
        ++patternT[(int) (t[i] - 'a')];
    }

    for (int i = 0; i < MAX_SIZE; ++i) {
        if (patternS[i] != patternT[i]) {
            return false;
        }
    }

    return true;
}
發佈了26 篇原創文章 · 獲贊 106 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章