21天活动Zyf打卡第五天Promise9913,键盘行

这篇文章探讨了如何使用Python解决一个关于美式键盘上同一行字母的单词匹配问题。通过预处理字符行号并应用到给定的单词列表中,博主展示了如何找出符合条件的单词,如'Alaska'和'Dad'。解决方案执行迅速,24毫秒内完成,且内存消耗适中。
摘要由CSDN通过智能技术生成
提交结果执行用时内存消耗语言提交时间备注
通过36 ms15.1 MBPython32021/10/31 14:59

问题描述:

给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。

美式键盘 中:

第一行由字符 "qwertyuiop" 组成。
第二行由字符 "asdfghjkl" 组成。
第三行由字符 "zxcvbnm" 组成。

示例 1:

输入:words = ["Hello","Alaska","Dad","Peace"]
输出:["Alaska","Dad"]
示例 2:

输入:words = ["omk"]
输出:[]
示例 3:

输入:words = ["adsdf","sfd"]
输出:["adsdf","sfd"]
 

提示:

1 <= words.length <= 20
1 <= words[i].length <= 100
words[i] 由英文字母(小写和大写字母)组成

解题思路:

为每一个英文字母标记其对应键盘上的行号,然后检测字符串中所有字符对应的行号是否相同。

我们可以预处理计算出每个字符对应的行号。

遍历字符串时,统一将大写字母转化为小写字母方便计算。

class Solution:
    def findWords(self, words: List[str]) -> List[str]:
        return list(filter(lambda x: any(all(x[i].lower() in t for i in range(len(x))) for t in [list("qwertyuiop"),list("asdfghjkl"),list("zxcvbnm")]),words))

已完成

执行用时:24 ms

输入

["Hello","Alaska","Dad","Peace"]

输出

["Alaska","Dad"]

差别

预期结果

["Alaska","Dad"]

JavaScript Promise是一种用于处理异步操作的对象。它可以解决回调地狱问题,并提供了一种更加优雅和可读的方式来处理异步代码。Promise对象有三个状态:pending(进中)、fulfilled(已成功)和rejected(已失败)。引用中提到了Promise的用法详解,可以作为参考。 在引用中的例子中,可以看到Promise的执是异步的。通过创建一个Promise对象,并在其构造函数中传入一个执器函数(resolve和reject函数),可以在函数内部执异步操作。当异步操作完成后,可以通过调用resolve函数将结果传递给then方法的成功回调函数。 在引用中的例子中,定义了一个greet函数,该函数返回一个Promise对象。在Promise的构造函数中,可以通过调用resolve函数来将结果传递给then方法的成功回调函数。在调用greet函数后,可以通过调用then方法来获取Promise对象的结果。在示例中,打印出了Promise对象(p)和成功回调函数(v)的结果。 总之,JavaScript Promise是一种用于处理异步操作的对象,可以通过调用resolve函数将结果传递给then方法的回调函数。它提供了一种优雅的方式来处理异步代码,避免了回调地狱问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [js中的promise详解](https://blog.csdn.net/zyf971020/article/details/127015351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Javascript Promise用法详解](https://download.csdn.net/download/weixin_38538312/12957140)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值