共计 561 个字符,预计需要花费 2 分钟才能阅读完成。
南朝四百八十寺
多少楼台烟雨中
前言
本题摘自 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 数组中的值是否一致
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;
}
正文完