首页 > 其他分享 >数据结构 字符串 (第6天)

数据结构 字符串 (第6天)

时间:2022-10-02 10:09:38浏览次数:77  
标签:字符 return Counter 次数 str 字符串 数据结构


这里的三题都和字符出现次数有关,可以用​​dict​​​ 或 ​​Counter​​​ 来轻松解决。
和​​​ditc​​​相关的可以参照文档​​docs collections​​​,里面比较常用的是​​defaultdict​​​和​​Counter​​。

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)


标签:字符,return,Counter,次数,str,字符串,数据结构
From: https://blog.51cto.com/pigeon/5729197

相关文章