auto-generated entry for Keyboard Row. the solution files are available below.
solution files
- C++
keyboard-row/synced-solution.cpp - Python
keyboard-row/synced-solution.py - TypeScript
keyboard-row/synced-solution.ts
Collected C++, Python, TypeScript solutions for keyboard row. Add a dedicated write-up later if you want deeper notes.
auto-generated entry for Keyboard Row. the solution files are available below.
keyboard-row/synced-solution.cppkeyboard-row/synced-solution.pykeyboard-row/synced-solution.tsdef findWords(words):
rows = [
set(class="syntax-string">'qwertyuiop'),
set(class="syntax-string">'asdfghjkl'),
set(class="syntax-string">'zxcvbnm')
]
result = []
for word in words:
word_lower = word.lower()
for row in rows:
if all(char in row for char in word_lower):
result.append(word)
break
return result
class Solution {
public:
vector<string> findWords(vector<string>& words) {
vector<set<char>> rows = {
set<char>{class="syntax-string">'q', class="syntax-string">'w', class="syntax-string">'e', class="syntax-string">'r', class="syntax-string">'t', class="syntax-string">'y', class="syntax-string">'u', class="syntax-string">'i', class="syntax-string">'o', class="syntax-string">'p'},
set<char>{class="syntax-string">'a', class="syntax-string">'s', class="syntax-string">'d', class="syntax-string">'f', class="syntax-string">'g', class="syntax-string">'h', class="syntax-string">'j', class="syntax-string">'k', class="syntax-string">'l'},
set<char>{class="syntax-string">'z', class="syntax-string">'x', class="syntax-string">'c', class="syntax-string">'v', class="syntax-string">'b', class="syntax-string">'n', class="syntax-string">'m'}
};
vector<string> result;
for (const string& word : words) {
for (const auto& row : rows) {
bool found = true;
for (char c : word) {
if (row.find(tolower(c)) == row.end()) {
found = false;
break;
}
}
if (found) {
result.push_back(word);
break;
}
}
}
return result;
}
};
function findWords(words: string[]): string[] {
const rows = [
new Set(class="syntax-string">'qwertyuiop'),
new Set(class="syntax-string">'asdfghjkl'),
new Set(class="syntax-string">'zxcvbnm')
];
const result: string[] = [];
for (const word of words) {
const wordLower = word.toLowerCase();
for (const row of rows) {
if ([...wordLower].every(char => row.has(char))) {
result.push(word);
break;
}
}
}
return result;
}