File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution {
2+ let row1 = " qwertyuiopQWERTYUIOP "
3+ let row2 = " asdfghjklASDFGHJKL "
4+ let row3 = " zxcvbnm(ZXCVBNM) "
5+
6+ private func row( of letter: String ) -> Int {
7+ if row1. contains ( letter) {
8+ return 1
9+ } else if row2. contains ( letter) {
10+ return 2
11+ } else if row3. contains ( letter) {
12+ return 3
13+ } else {
14+ return 0
15+ }
16+ }
17+ private func canTypeInRow( _ word: String ) -> Bool {
18+ let firstLetter = String ( word. first!)
19+ let firstLetterRow = row ( of: firstLetter)
20+ let startIndex = word. index ( after: word. startIndex)
21+ for item in word [ startIndex... ] {
22+ let letter = String ( item)
23+ let row = self . row ( of: letter)
24+ if row != firstLetterRow || row == 0 {
25+ return false
26+ }
27+ }
28+ return true
29+ }
30+ func findWords( _ words: [ String ] ) -> [ String ] {
31+
32+ var results = [ String] ( )
33+ for word in words {
34+ if word. isEmpty {
35+ continue
36+ }
37+ if canTypeInRow ( word) {
38+ results. append ( word)
39+ }
40+ }
41+ return results
42+ }
43+ }
You can’t perform that action at this time.
0 commit comments