242.有效的字母异位词
题目
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:
1 2
| 输入: s = "anagram", t = "nagaram" 输出: true
|
示例 2:
1 2
| 输入: s = "rat", t = "car" 输出: false
|
题解
创建一个大小为 26 的数组,数值初始化都为0,循环输入的字符串s,每出现一个则在对应的字母位置上 +1。循环需要对比的字符串,每出一个则在对应的位置 -1,最后看数组元素是否每一位都是0,如果全都是0则是有效的字母异位词。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Solution(object): def isAnagram(self, s, t): """ :type s: str :type t: str :rtype: bool """ data = [0] * 26 s_len = len(s) t_len = len(t) for x in range(s_len): data[ord(s[x]) - ord("a")] += 1 for x in range(t_len): data[ord(t[x]) - ord("a")] -= 1 for x in data: if x != 0: return False return True
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| func isAnagram(s string, t string) bool { data := make([]int, 26) Slen, Tlen := len(s), len(t)
for i := 0; i < Slen; i++ { data[s[i]-'a'] += 1 }
for i := 0; i < Tlen; i++ { data[t[i]-'a'] -= 1 }
for i := 0; i < len(data); i++ { if data[i] != 0{ return false } } return true }
|
变体
总结
参考