每日一题---500. 键盘行[力扣][Go]

简介: 每日一题---500. 键盘行[力扣][Go]

题目描述

给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。

解题代码

func findWords(words []string) []string {
  var sum []string
  // 确定三个字符串
  s1 := "qwertyuiop"
  s2 := "asdfghjkl"
  s3 := "zxcvbnm"
  for _, word := range words {
    // 给一个旗子来确定是否可以插入数组中
    flag := true
    lower := strings.ToLower(word)
    // 根据第一个字符确定应该遍历哪个字符串
    where := isExistWhere(lower[0], s1, s2, s3)
    for _, c1 := range lower {
      // 判断字符是否在字符串中
      if !isExistChar(c1,where) {
        flag = false
        break
      }
    }
    if flag {
      sum = append(sum,word)
    }
  }
  return sum
}
// 判断字符是否存在内个字符串中
func isExistWhere(c uint8,s1,s2,s3 string) string {
  for _, i := range s1 {
    if c == uint8(i) {
      return s1
    }
  }
  for _, i := range s2 {
    if c == uint8(i) {
      return s2
    }
  }
  for _, i := range s3 {
    if c == uint8(i) {
      return s3
    }
  }
  return ""
}
// 判断字符在字符串中是否存在
func isExistChar(c int32,s string) bool {
  for _, i := range s {
    if c == i {
      return true
    }
  }
  return false
}

提交结果


相关文章
|
1月前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
40 6
|
1月前
|
Go C++
【力扣】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
【2月更文挑战第17天】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
34 8
每日一题 --- 942. 增减字符串匹配[力扣][Go]
每日一题 --- 942. 增减字符串匹配[力扣][Go]
每日一题 --- 942. 增减字符串匹配[力扣][Go]
|
算法 Go
每日一题 --- 442. 数组中重复的数据[力扣][Go]
每日一题 --- 442. 数组中重复的数据[力扣][Go]
每日一题 --- 442. 数组中重复的数据[力扣][Go]
每日一题 --- 933. 最近的请求次数[力扣][Go]
每日一题 --- 933. 最近的请求次数[力扣][Go]
每日一题 --- 933. 最近的请求次数[力扣][Go]
每日一题 --- 713. 乘积小于 K 的子数组[力扣][Go]
每日一题 --- 713. 乘积小于 K 的子数组[力扣][Go]
每日一题 --- 713. 乘积小于 K 的子数组[力扣][Go]
每日一题 --- 606. 根据二叉树创建字符串[力扣][Go]
每日一题 --- 606. 根据二叉树创建字符串[力扣][Go]
每日一题 --- 606. 根据二叉树创建字符串[力扣][Go]
|
Go 索引
每日一题 ---- 599. 两个列表的最小索引总和[力扣][Go]
每日一题 ---- 599. 两个列表的最小索引总和[力扣][Go]
每日一题 ---- 599. 两个列表的最小索引总和[力扣][Go]
|
存储 测试技术 Go
每日一题 --- 393. UTF-8 编码验证[力扣][Go]
每日一题 --- 393. UTF-8 编码验证[力扣][Go]
每日一题 --- 393. UTF-8 编码验证[力扣][Go]
每日一题 --- 590. N 叉树的后序遍历[力扣][Go]
每日一题 --- 590. N 叉树的后序遍历[力扣][Go]
每日一题 --- 590. N 叉树的后序遍历[力扣][Go]