242. 有效的字母异位词

2019-01-09  本文已影响0人  六十年目裁判长亚玛萨那度

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

难度:简单

输入: s = "abba", t = "abab"
输出: true

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

void haha(char *str, int *code) {
    int len = strlen(str);
    while (len > 0) {
        code[str[len - 1]] += 1;
        len -= 1;
    }
    return ;
}

bool isAnagram(char* s, char* t) {
    if (strlen(s) != strlen(t)) return false ;
    int code1[260] = {0}, code2[260] = {0};
    haha(s, code1);
    haha(t, code2);
    for (int i = 0; s[i]; i++) {
        if (code1[s[i]] == code2[s[i]]) continue;
        return false;
    }
    return true;
}

因为他们的长度肯定是一样的,那么:

假设code1(s的信息)里面的和code2(t的信息)是一样的,那么这个时候拿出任意一个串,比如s串,让:
code1[s[i]] == code2[s[i]]
查看在code2中的字符信息和s每位的字符信息是不是一样的,如果是,并且长度一样,那么必然是符合题目要求的。

上一篇 下一篇

猜你喜欢

热点阅读