Skip to content

Instantly share code, notes, and snippets.

@froggomad
Last active February 12, 2020 19:34
Show Gist options
  • Save froggomad/cdeb696fafccd04b35d62ae435f6170c to your computer and use it in GitHub Desktop.
Save froggomad/cdeb696fafccd04b35d62ae435f6170c to your computer and use it in GitHub Desktop.
Find the common characters among words in an array
/*:
Given an array A of strings made only from lowercase letters,
return a list of all characters that show up in all strings within the list (including duplicates).
For example, if a character occurs 3 times in all strings but not 4 times,
you need to include that character three times in the final answer.
You may return the answer in any order.
```
Example 1:
Input: ["bella","label","roller"]
Output: ["e","l","l"]
Example 2:
Input: ["cool","lock","cook"]
Output: ["c","o"]
*/
func commonChars(_ A: [String]) -> [String] {
var resultDict = [Character:Int]()
for word in A {
for char in word {
resultDict[char] = (resultDict[char] ?? 0) + 1
}
}
var resultArr = [String]()
for (char, count) in resultDict {
if count >= A.count {
resultArr.append("\(char)")
}
}
return resultArr
}
var kenny = ["kenny", "many", "sadly"]
commonChars(kenny)
@vicxruiz
Copy link

input
["bella","label","roller"]
Output
["l","e"]
Expected
["e","l","l"]

Really close! Try to get it down to two for loops

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment