You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
dic = "abcdefghijklmnopqrstuvwxyz"
if len(s) != len(t):
return False
s_num = [0 for i in range(26)]
for i in range(len(s)):
for j in range(26):
if s[i] == dic[j]:
s_num[j] += 1
if t[i] == dic[j]:
s_num[j] -= 1
if s_num == [0 for i in range(26)]:
return True
else:
return False
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
示例 2:
说明:
你可以假设字符串只包含小写字母。
进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-anagram
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
本题只需要判断字符串s和t中每个字母出现次数是否相同。
如果两个字符串长度不同,则一定不为字母异位词,因此可以直接排除。对于相同长度的字符串,可以利用哈希表实现字符的比对。初始化长度为26值为0的数组,如果字符串s中出现了字符'a',则将数组对应的下标+1,如果在字符串t中出现了相同的字符'a',则将对应的下标-1。最终通过数组中是否全为0判断两个字符串是否是字母异位词
开始的解法:
初始化1个长为26的数组,没有使用字典,时间复杂度高
升级解法:
定义两个空字典,用于记录出现的字符。优势:由于存在一定可能,字符串中不会出现所有的26个字母,因此使用空字典可以降低空间复杂度。
学到了:
The text was updated successfully, but these errors were encountered: