LeetCode 键盘行<四>

500. 键盘行

题目网址:https://leetcode-cn.com/problems/keyboard-row/hints/

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

示例1:

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

注意:

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

代码关键理解:当前字母是否和上一个字母同在一个键盘行

class Solution:
    def findWords(self, words):
        line1="qwertyuiop"
        line2="asdfghjkl"
        line3="zxcvbnm"
        results=[]

        for string in words:
            string2 = string.lower()

            inLine = 0
            appendStr2 = True
            for s in string2:
                if inLine==0:
                    if s in line1:
                        inLine = 1
                    elif s in line2:
                        inLine = 2
                    else:
                        inLine = 3
                else:
                    if ((s in line1) and inLine!=1) or ((s in line2) and inLine!=2) or ((s in line3) and inLine!=3) :
                        appendStr2 = False
                        break
            if appendStr2:
                results.append(string)

        return results

原文地址:https://www.cnblogs.com/bibi-feiniaoyuan/p/9309143.html

时间: 2024-10-30 14:28:21

LeetCode 键盘行<四>的相关文章

Leetcode:LRUCache四个版本实现

题目 Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set. get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1.s

收起键盘的四种办法

1 除了调用相应控件的resignFirstResponder方法外,还有另外三种办法: 2 重载UIViewController中的touchesBegin方法,然后在里面执行在[self.view endEditing:YES];这样单击UIViewController的任意地方,就可以收起键盘. 3 直接执行[[UIApplication sharedApplication]sendAction:@selector(resignFirstResponder)to:nil from:nil

LeetCode算法第四题

# 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000.## 示例 1:## 输入: "babad"# 输出: "bab"# 注意: "aba" 也是一个有效答案.# 示例 2:## 输入: "cbbd"# 输出: "bb"## 来源:力扣(LeetCode)# 链接:https://leetcode-cn.com/problems/longest-palindromic

Leetcode题解(四)

12/13.Integer to Roman/Roman to Integer 题目 罗马数字规则: 符号 I V X L C D M 数字 1 5 10 50 100 500 1000 代码如下: 1 class Solution { 2 public: 3 string intToRoman(int num) { 4 string str; 5 string symbol[]={"M","CM","D","CD",&quo

[LeetCode] 18. 4Sum 四数之和

Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target. Note: Elements in a quadruplet (a,b,c,d) must be in non-descending order.

leetcode刷题四&lt;寻找两个有序数组的中位数&gt;

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 nums2 不会同时为空. 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4] 则中位数是 (2 + 3)/2 = 2.5 思路简单直接撸代码吧 double findMedianSortedArrays(

寻找两个有序数组的中位数 C++实现leetcode系列(四)

给定两个大小为 m 和 n 的有序数组 nums1和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 nums2 不会同时为空. 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4] 则中位数是 (2 + 3)/2 = 2.5 这道题让我们求两个有序数组的中位数,而且限制了时间复杂度为 O(log (m+n))

[LeetCode] 454. 4Sum II 四数之和II

Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero. To make problem a bit easier, all A, B, C, D have same length of N where 0 ≤ N ≤ 500. All integers are in the r

软件测试这四年

六月尾了,多么青春的月份.世界杯伴随着高考结束大学毕业,转眼从事软件测试工作四年了.想想当初,培训老师口中的朝阳行业软件测试,到现在依旧朝阳,只能呵呵. 先说说主页君自己,由于他腹黑阴险狡猾,不做测试挺可惜的,所以四年前毅然选择了软件测试这个行当,要说后悔,基本没有,唯一遗憾的是当年应该先去做两年开发再去转测试恐怕是更好的选择吧.所以这里给新人或者入行不久的同行一个忠告:无论是从薪资晋级的角度,还是更好地理解软件生命周期这个角度,先从事两年左右的开发都是一个更好的选择.不过当你选了开发做了两三年