当前位置: 首页 > article >正文

[Easy] leetcode-500 键盘行

一、题目描述

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

请注意,字符串 不区分大小写,相同字母的大小写形式都被视为在同一行

美式键盘 中:

  • 第一行由字符 "qwertyuiop" 组成。
  • 第二行由字符 "asdfghjkl" 组成。
  • 第三行由字符 "zxcvbnm" 组成。
示例 1:

输入:words = ["Hello","Alaska","Dad","Peace"]

输出:["Alaska","Dad"]

解释:

由于不区分大小写,"a" 和 "A" 都在美式键盘的第二行。

示例 2:

输入:words = ["omk"]

输出:[]

示例 3:

输入:words = ["adsdf","sfd"]

输出:["adsdf","sfd"]

 二、题目解答

1.每一行的字符加入哈希表,同一行的value值相同
2.判断每个value是否都相同,即是否都在一行,在则加入结果字符串容器
class Solution {
public:
    vector<string> findWords(vector<string>& words) {
        string s1 = "QWERTYUIOPqwertyuiop";
        string s2 = "ASDFGHJKLasdfghjkl";
        string s3 = "ZXCVBNMzxcvbnm";
        map<char, int> my_map;
        for (auto c :s1)
        {
            my_map[c] = 1;
        }
        for (auto c :s2)
        {
            my_map[c] = 2;
        }
        for (auto c :s3)
        {
            my_map[c] = 3;
        }
        vector <string> res;
        for(int i = 0 ; i < words.size(); i++)
        {
            string tmp = words[i];
            int row = my_map[tmp[0]];//哈希值
            bool is_samerow = true;
            for (int j = 1; j < tmp.size(); j++)
            {
                if (my_map[tmp[j]] != row)
                {
                    is_samerow = false;
                    break;
                }
            }
            if (is_samerow)
                res.push_back(tmp);
        }
        return res;

    }
};


http://www.kler.cn/a/513041.html

相关文章:

  • 工业相机 SDK 二次开发-Halcon 插件
  • 2025年PHP面试宝典,技术总结。
  • ESP32下FreeRTOS实时操作系统使用
  • 包文件分析器 Webpack Bundle Analyzer
  • 2025年1月17日(点亮一个 LED)
  • three.js实现裸眼双目平行立体视觉
  • Pix2Pix:图像到图像转换的条件生成对抗网络深度解析
  • 实现一个自己的spring-boot-starter,基于SQL生成HTTP接口
  • 分布式系统通信解决方案:Netty 与 Protobuf 高效应用
  • 如何打造高效同城O2O平台?外卖跑腿系统源码选型与开发指南
  • 新能源工厂如何借助防静电手环监控系统保障生产安全
  • 0基础跟德姆(dom)一起学AI 自然语言处理19-输出部分实现
  • .NET Core 中如何构建一个弹性HTTP 请求机制
  • Linux应用编程(五)USB应用开发-libusb库
  • 力扣-数组-350 两个数组的交集Ⅱ
  • 连接池偶现15分钟超时问题
  • 数组-二分查找
  • qt中透明度表示
  • 如何使用 Python 进行文件读写操作?
  • 【Linux】Socket编程-TCP构建自己的C++服务器
  • VUE之Router使用及工作模式
  • Oracle LiveLabs实验:Database 19c - JSON
  • AI Workflow AI Agent:架构、模式与工程建议
  • idea 插件下载与安装
  • 简识Redis 持久化相关的 “Everysec“ 策略
  • Linux初识:【版本控制器Git】【调试器gdb/cgdb使用】