哈希映射-有效的字母异位词

南朝四百八十寺
多少楼台烟雨中

前言

本题摘自LeetCode第242题,有效的字母异位词,

题目描述

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

事例1:

输入: s = "anagram", t = "nagaram"
输出: true

事例2:

输入: s = "rat", t = "car"
输出: false

解题思想

1.初始化两个数组(理解为哈希表),对应26个英文字母,开始值都为0
int a[26] = {0};
int b[26] = {0};
2.分别遍历s、t字符串的中的字符,给字符在数组中的位置值进行加加操作
3.对比a、b数组中的值是否一致

哈希映射-有效的字母异位词_第1张图片

C语言代码实现

    BOOL isVaildAgment(char *s, char *t) {
        int lengthS = strlen(s);
        int lengthT = strlen(t);
        
        int a[26] = {0};
        int b[26] = {0};
        
        for (NSInteger i = 0; i < lengthS; i++) {
            int index = s[i]-'a';
            a[index] = 1;
        }
        for (NSInteger i = 0; i < lengthT; i++) {
            int index = t[i]-'a';
            b[index] = 1;
        }
        for (NSInteger i = 0; i < 26; i++) {
            if (a[i] != b[i]) {
                return false;
            }
        }
        return true;
    }

你可能感兴趣的:(算法,c,hash)