Search

Keyboard Row

문제 설명 : 주어진 문자열 중 미국식 키보드 기준으로 하나의 행에 존재하는 문자로만 구성된 단어를 반환하는 문제
풀이 방법
각 문자마다 어떤 행에 존재하는지 dict로 저장 후 확인
시간복잡도 : O(N2)O(N^2)
성공 코드
class Solution: def findWords(self, words: List[str]) -> List[str]: keyboard_info = {} result = [] for ch in 'qwertyuiopQWERTYUIOP': keyboard_info[ch] = 1 for ch in 'asdfghjklASDFGHJKL': keyboard_info[ch] = 2 for ch in 'zxcvbnmZXCVBNM': keyboard_info[ch] = 3 # 각 문자열를 구성하는 문자를 확인하여 같은행인지 확인 for word in words: is_one_row = True for i in range(len(word) - 1): if keyboard_info[word[i]] != keyboard_info[word[i + 1]]: is_one_row = False break if is_one_row: result.append(word) return result
Python
복사