15 Jun 2024C++ / Python / TypeScriptEasy

Keyboard Row

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.

solution files

  • C++ keyboard-row/synced-solution.cpp
  • Python keyboard-row/synced-solution.py
  • TypeScript keyboard-row/synced-solution.ts

Solution files

Pythonkeyboard-row/synced-solution.py
def 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
C++keyboard-row/synced-solution.cpp
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;
    }
};
TypeScriptkeyboard-row/synced-solution.ts
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;
}