版权声明:本文为博主原创文章,未经允许,不得转载,如需转载请注明出处 https://blog.csdn.net/ssjdoudou/article/details/83658652
写在最前面:这道题虽然是easy,不过很少有用python实现的,下面我用python讲一下。
leetcode【500】keyboard Row
Given a List of words, return the words that can be typed using letters of alphabet on only one row's of American keyboard like the image below.
Example 1:
Input: ["Hello", "Alaska", "Dad", "Peace"]
Output: ["Alaska", "Dad"]
Note:
- You may use one character in the keyboard more than once.
- You may assume the input string will only contain letters of alphabet.
class Solution(object):
def findWords(self, words):
"""
:type words: List[str]
:rtype: List[str]
"""
first = 'qwertyuiop'
second = 'asdfghjkl'
third = 'zxcvbnm'
ans = []
for word in words:
newword = word.lower()
#for i in range(len(newword)):
if all(newword[i] in first for i in range(len(newword))):
ans.append(word)
if all(newword[i] in second for i in range(len(newword))):
ans.append(word)
if all(newword[i] in third for i in range(len(newword))):
ans.append(word)
return ans
any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。
元素除了是 0、空、FALSE 外都算 TRUE。
all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
元素除了是 0、空、FALSE 外都算 TRUE。
第一步,全部转成小写
第二步,把每个转成小写的单词挨个判断是否在第一行,第二行,第三行键盘里
第三步,如果在,输出没有转小写之前的单词
上面判断每一个字符是否在字符串的循环算是不常见的用法,大家可以学一下