题目:
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如自己电脑键盘所示。
示例:
输入:["Hello", "Alaska", "Dad", "Peace"]
输出:["Alaska", "Dad"]
注意:
1、你可以重复使用键盘上同一字符。
2、你可以假设输入的字符串将只包含字母。
本题笔者思路:循环每一个字符串的每一个字符,看是否存在于同一键盘行。
运行代码:
def jianpanhang(a):
d1 = [['q','w','e','r','t','y','u','i','o','p','Q','W','E','R','T','Y','U','I','O','P'],['a','s','d','f','g','h','j','k','l','A','S','D','F','G','H','J','K','L'],['z','x','c','v','b','n','m','Z','X','C','V','B','N','M']]
#d1为键盘行,各行用[]区分;
d2 = []
for i in range(0,len(a)):
b = list(a[i])
for j in range(0,3):
d = []
for k in range(0,len(b)):
if b[k] not in d1[j]:
d.append(0)
else :
d.append(1)
if sum(d) == len(list(a[i])): #通过求和判断字符串是否能来源于同一键盘
d2.append(a[i])
return(d2)
运行结果:
注:题目来源于:https://mp.weixin.qq.com/s/RcvJ-Bpvz5njPZ1CLNBcyA
如有侵权,请联系删除。
该来源有附上C、C++、JAVA的实现代码,有需要的朋友可以访问链接了解。
本博文的思路及代码为笔者自己思考并编码实现的结果,如有错误,欢迎指出,也欢迎交流~