【LeetCode】水题(刚开始重新刷题找感觉用的)

[500]  Keyboard Row [Easy]

给N个单词,判断哪些单词的字母在键盘的同一行,输出这些单词。

 1 class Solution {
 2 public:
 3     set<char> setLine1{‘q‘, ‘w‘, ‘e‘, ‘r‘, ‘t‘, ‘y‘, ‘u‘, ‘i‘, ‘o‘, ‘p‘},
 4             setLine2{‘a‘, ‘s‘, ‘d‘, ‘f‘, ‘g‘, ‘h‘, ‘j‘, ‘k‘, ‘l‘},
 5             setLine3{‘z‘, ‘x‘, ‘c‘, ‘v‘, ‘b‘, ‘n‘, ‘m‘};
 6
 7     int findGroup(char lowerChar) {
 8         if (setLine1.find(lowerChar) != setLine1.end()) {
 9             return 1;
10         } else if (setLine2.find(lowerChar) != setLine2.end()) {
11             return 2;
12         } else if (setLine3.find(lowerChar) != setLine3.end()){
13             return 3;
14         }
15         return -1;
16     }
17
18     vector<string> findWords(vector<string>& words) {
19         vector<string> answer;
20         for(auto word : words) {
21             int groupId = 0;
22             bool ansIn = true;
23             groupId = isupper(word[0]) ? findGroup(tolower(word[0])) : findGroup(word[0]);
24             for (auto i = 1; i < word.size(); ++i) {
25                 int tmpGroupId = 0;
26                 tmpGroupId = isupper(word[i]) ? findGroup(tolower(word[i])) : findGroup(word[i]);
27                 if (tmpGroupId != groupId) {
28                     ansIn = false;
29                     break;
30                 }
31             }
32             if (ansIn) {
33                 answer.push_back(word);
34             }
35         }
36         return answer;
37     }
38 };

原文地址:https://www.cnblogs.com/zhangwanying/p/9255749.html

时间: 2024-10-09 02:54:52

【LeetCode】水题(刚开始重新刷题找感觉用的)的相关文章

2019上半年网络工程师真题及答案、刷题

网络工程师2019上半年真题及答案.刷题 1.计算机执行指令的过程中,需要由(1)产生每条指令的操作信号并将信号送往相应的部件进行处理,已完成指定的操作. A.CPU 的控制器 B.CPU 的运算器 C.DMA 控制器 D.Cache 控制器 参考答案[A] 2.DMA 控制方式是在(2)之间直接建立数据通路进行数据的交换处理. A.CPU 与主存 B.CPU 与外设 C.主存与外设 D.外设与外设 参考答案[C] 3.在(3)校验方法中,采用模2 运算来构造校验位. A.水平奇偶 B.垂直奇偶

2019上半年信息系统项目管理师真题及答案、刷题

信息系统项目管理师2019上半年真题及答案.刷题 1.RFID射频技术多应用于物联网(1). A.网络层 B.感知层 C.应用层 D.传输层 参考答案[C] 2.智慧城市建设参考模型的(2)利用SOA(面向服务的体系架构).云计算.大数据等技术,承载智慧应用层中的相关应用,提供应用所需的各种服务和共享资源. A.通信 网络层 B.计算与存储层 C.物联感知层 D.数据及服务支撑层 参考答案[D] 3.在信息系统生命周期中,开发阶段不包括(3). A.系统规划 B.系统设计 C.系统分析 D.系统

在vscode中配置LeetCode插件,从此愉快地刷题

大家好,今早在B站看到up主的vscode里藏了leetcode插件,这才知道原来还有这款神器.但是没想到在用的时候遇到了一些麻烦,花了一点时间才解决.所以写这篇文章除了给大家安利这个好用的插件之外,也是为了帮助更多的同学避免踩坑. 简介vscode vscode在工业界鼎鼎大名,被誉为微软少有的拿得出手的精品(逃).原本是不想过多赘述的,但是鉴于许多粉丝还是正在上学的萌新,所以花点笔墨简单介绍一下. vscode是微软开发的编辑器,严格说起来它并不是一个IDE,只是一个编辑器.但是由于它支持嵌

Python刷题之路,怎样做才能让技术突飞猛进

比你优秀的人比你还努力 这个世界最可悲的就是 , 比你优秀的人比你还努力 偶然的机会,通过Python认识了一位华为的文职工作人员.起初只是问我,Python初学者看什么书能快速入门.而两个月过后,她已经开始每天在Leecode上刷题了.虽然有时半夜微信收到她刷题刷到崩溃的消息,或者针对部分Python语法的疑问,但作为一位文职大厂的优秀员工,她却比很多本该靠着代码吃饭的人更为努力. 今天这篇文章,就写给那些希望学习Python,但在刷题路上迷茫或者找不到方向的朋友们.文章仅代表个人观点,不喜勿

USACO刷题之路,开始了

几天前,重新开始刷题了. 重新刷题有几个原因: 1.曾经的OI经历,如今除了悟性高些.知识多些,大多已经遗忘.不希望真的让之前的OI水平就这么丢了. 2.越来越觉得,刷题真的是一件很开心的事情.大学中,很少有东西能够挑战自己的思维了,也不知以后会不会有很多.OI题,真的好宝贵! 3.不舍.喜欢竞赛.喜欢竞赛题,现在我可以确定地说,这将是我一生的爱好. 之所以选择USACO,是因为这个题库很适合用来恢复状态,而且这么经典的题库之前也一直没静下心来好好刷一刷.正好现在,去重新拾起OI,好好做做USA

【leetcode刷题笔记】Max Points on a Line

Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. 题解: 思路比较简单,每条直线都可以表示为y=kx+b,所以对于任意三点,如果它们共线,那么它们中任意两点的斜率都相等. 所以就遍历points数组,对其中的每一个元素计算它和位于它后面的数组元素的斜率并保存在一个hashmap中. 这个hashmap的键就是两点构成直线的斜率,值就是和当前元素po

【leetcode刷题笔记】Largest Rectangle in Histogram

Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. Above is a histogram where width of each bar is 1, given height = [2,1,5,6,2,3]. The largest

【leetcode刷题笔记】Remove Duplicates from Sorted List

Given a sorted linked list, delete all duplicates such that each element appear only once. For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return 1->2->3. 题解:水题不解释 1 /** 2 * Definition for singly-linked list. 3 * str

8月leetcode刷题总结

刷题链接:https://leetcode-cn.com/explore/ 根据leetcode的探索栏目,八月份一直在上面进行刷题.发现算法题真的好难,真-计算机思维. 核心是将现实问题转化为计算机能够处理的计算问题.而这些计算问题都是通过逻辑分析来解决的. 因此逻辑-分析能力就是计算机思维的核心能力.比如将一个数组的增删改查,是通过逻辑中的 if   -else   while   这些基本语句构成的. 引用左神的算法刷题方法:" 第一阶段:对于某一个具体的算法,首先要搞清楚这个算法解决的问