387. 字符串中的第一个唯一字符
返回字符串中第一个出现次数为一的下标。
用ditc统计出现次数后遍历:
class Solution: def firstUniqChar(self, s: str) -> int: word_count = defaultdict(int) for x in s: word_count[x] += 1 for idx,x in enumerate(s): if word_count[x] == 1: return idx return -1
383. 赎金信
输入两个字符串s1,s2。
判断s1能不能通过s2中的字符拼凑出来。
使用Counter统计字符出现次数,只要s2中的字符出现次数比s1的次数多就可以。
class Solution: def canConstruct(self, ransomNote: str, magazine: str) -> bool: cnt1 = Counter(ransomNote) cnt2 = Counter(magazine) for k,v in cnt1.items(): if k in cnt2 and cnt2[k] >= v: continue else: return False return True
242. 有效的字母异位词
给定两个字符串s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
class Solution: def isAnagram(self, s: str, t: str) -> bool: return Counter(s)== Counter(t)