Go•find-common-characters/solution.go
package main
func commonChars(words []string) []string {
common := [26]int{}
for index := range common {
common[index] = 101
}
for _, word := range words {
count := [26]int{}
for _, character := range word {
count[character-'a']++
}
for index := range common {
if count[index] < common[index] {
common[index] = count[index]
}
}
}
result := []string{}
for index, count := range common {
for used := 0; used < count; used++ {
result = append(result, string(rune('a'+index)))
}
}
return result
}
Python•find-common-characters/solution.py
from collections import Counter
class Solution:
def commonChars(self, words: list[str]) -> list[str]:
common = Counter(words[class="syntax-number">0])
for word in words[class="syntax-number">1:]: common &= Counter(word)
return list(common.elements())
TypeScript•find-common-characters/solution.ts
function commonChars(words: string[]): string[] {
const common = new Array<number>(class="syntax-number">26).fill(Number.POSITIVE_INFINITY);
for (const word of words) { const count = new Array<number>(class="syntax-number">26).fill(class="syntax-number">0); for (const character of word) count[character.charCodeAt(class="syntax-number">0) - class="syntax-number">97] += class="syntax-number">1; for (let index = class="syntax-number">0; index < class="syntax-number">26; index += class="syntax-number">1) common[index] = Math.min(common[index], count[index]); }
const result: string[] = []; common.forEach((count, index) => { for (let used = class="syntax-number">0; used < count; used += class="syntax-number">1) result.push(String.fromCharCode(class="syntax-number">97 + index)); }); return result;
}