| 123456789101112131415161718192021222324252627282930313233 | 
							- var rows map[rune]int = map[rune]int{
 
- 	'A': 1, 'S': 1, 'D': 1, 'F': 1, 'G': 1, 'H': 1, 'J': 1, 'K': 1, 'L': 1,
 
- 	'Z': 2, 'X': 2, 'C': 2, 'V': 2, 'B': 2, 'N': 2, 'M': 2,
 
- }
 
- func findWords(words []string) (res []string) {
 
- 	for i := range words {
 
- 		if isInOneRow(words[i]) {
 
- 			res = append(res, words[i])
 
- 		}
 
- 	}
 
- 	return
 
- }
 
- func isInOneRow(s string) bool {
 
- 	res := 0
 
- 	for _, r := range s {
 
- 		ch := toUpper(r)
 
- 		if val, ok := rows[ch]; ok {
 
- 			res |= val
 
- 		} else {
 
- 			res |= 4
 
- 		}
 
- 	}
 
- 	return res == 1 || res == 2 || res == 4
 
- }
 
- func toUpper(r rune) rune {
 
- 	if 'a' <= r {
 
- 		return rune(r - 32)
 
- 	}
 
- 	return r
 
- }
 
 
  |