【每日一题】1002. Find Common Characters

在这里插入图片描述
题目的意思是说,找到各个字符串中的共同字母,相同的字母出现几次也要列出几次。主要思想是字符串映射成数组,这样能够缩短查询的时间。

class Solution:
    def commonChars(self, A: List[str]) -> List[str]:
        res = [0] * 26      # 记录共同出现的字符
        for char in A[0]:
            res[ord(char) - ord('a')] += 1    # 将字符映射到对应的数组中
        for Str in A:
            temp = [0] * 26 
            for char in Str:
                temp[ord(char) - ord('a')] += 1
            for i in range(0, 26):  
                res[i] = min(res[i], temp[i])
        ans = []
        for idx, i in enumerate(res):
            if(i != 0):
                ans.extend([chr(idx + 97)] * i)
        return ans

总结:

  • 字符转ascii码:ord(char)
  • ascii码转字符:chr(int)
  • enumerate: 返回迭代器的序号和内容
  • extend与append:extend(list)扩充列表,扩充之后仍属于一个列表,append(list),会把list当作一个元素加到原list的后边

废话:

代码基础很薄弱,还是读得少写得少了,python语法也不熟练,得多练习,而且得多输出,才能够把思路理清楚。小咸鱼也有一颗想做技术大神的心~~

猜你喜欢

转载自blog.csdn.net/SJTUKK/article/details/109082570