🥉Easy
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。
题解
题目很简单,但是一定要理解清楚什么是字母异位词,字母异位词指的是把原字符串内容顺序调换后的字符串。接下来就很简单了,把字符串转成数组,然后排序即可:
排序
Python
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
if len(s)!=len(t):
return False
return sorted(list(s))==sorted(list(t))
JavaScript
var isAnagram = function(s, t) {
return s.length == t.length && [...s].sort().join('') === [...t].sort().join('')
};
复杂度分析
- 时间复杂度:
。其中 n 为 s 的长度。排序的时间复杂度为
,比较两个字符串是否相等时间复杂度为
,因此总体时间复杂度为
。
- 空间复杂度:
。排序需要
的空间复杂度。注意,在某些语言(比如 Java & JavaScript)中字符串是不可变的,因此我们需要额外的
的空间来拷贝字符串。但是我们忽略这一复杂度分析,因为: