键盘行

500. 键盘行

难度简单114收藏分享切换为英文接收动态反馈

给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。

American keyboard

示例:

输入: ["Hello", "Alaska", "Dad", "Peace"]
输出: ["Alaska", "Dad"]

注意:

  1. 你可以重复使用键盘上同一字符。
  2. 你可以假设输入的字符串将只包含字母。

最傻逼的操作Demo

func findWords(words []string) []string {
    res := make([]string,0)
    for _, s := range words {
        if isSame(s) == true {
            res = append(res, s)
        }
    }
    return res
}

func isSame (s string) bool {
    map1 := map[byte]int{
    'q': 1,'w': 1,'e': 1,'r': 1,'t': 1,'y': 1,'u': 1,'i': 1,'o': 1,'p': 1,
    'Q': 1,'W': 1,'E': 1,'R': 1,'T': 1,'Y': 1,'U': 1,'I': 1,'O': 1,'P': 1,

    'a': 2,'s': 2,'d': 2,'f': 2,'g': 2,'h': 2,'j': 2,'k': 2,'l': 2,
    'A': 2,'S': 2,'D': 2,'F': 2,'G': 2,'H': 2,'J': 2,'K': 2,'L': 2,

    'z': 3,'x': 3,'c': 3,'v': 3,'b': 3,'n': 3,'m': 3,
    'Z': 3,'X': 3,'C': 3,'V': 3,'B': 3,'N': 3,'M': 3,
    }

    flag := map1[s[0]]
    for i := 1; i < len(s); i++ {
        v, _ := map1[s[i]]
        if flag != v {
            return false
        }
    }
   return true
}
原文地址:https://www.cnblogs.com/Di-iD/p/13970302.html