- Reverse Words in a String III
思路:将句子里的每个单词的字母倒序,但是不改变单词的顺序。
- join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
def reverseWords(self, s):
return ' '.join(x[::-1] for x in s.split())
- Keyboard Row
思路:判断字符串列表中哪些字符串符合字母都在键盘的同一行。
- filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) = [1, 3, 5, 7, 9]
- map() 会根据提供的函数对指定序列做映射。
map(square, [1,2,3,4,5]) = [1, 4, 9, 16, 25]
- set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集&、差集-、并集|等。
set('runoob') = (set(['b', 'r', 'u', 'o', 'n'])
class Solution(object):
def findWords(self, words):
"""
:type words: List[str]
:rtype: List[str]
"""
set1 = map(set,['qwertyuiop','asdfghjkl','zxcvbnm']) #映射成set元素集
word_1 = []
for word in words:
a = set(word.lower()) #映射成set元素集
if any(a <= rset for rset in set1):
word_1.append(word)
return word_1
class Solution(object):
def findWords(self, words):
"""
:type words: List[str]
:rtype: List[str]
"""
return filter(re.compile('(?i)([qwertyuiop]*|[asdfghjkl]*|[zxcvbnm]*)$').match, words) #正则表达式匹配法
网友评论