タイトルの意味は、各文字列で共通の文字を見つけ、同じ文字を数回リストすることです。主なアイデアは、文字列を配列にマップすることです。これにより、クエリ時間を短縮できます。
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)
- 列挙:イテレーターの数と内容を返します
- 拡張と追加:extend(list)はリストを展開します。展開後もリストに属し、append(list)はリストを要素として元のリストの後ろに追加します。
ナンセンス:
コードベースは非常に弱いです。私はまだ読み取りと書き込みが少なくなっています。Python文法に習熟していません。考えを明確にするために、より多くの練習と出力が必要です。XiaoXianyuにはテクノロジーの神になる心もあります~~