【解题报告】Leecode 500. 键盘行——Leecode每日一题系列
生活随笔
收集整理的這篇文章主要介紹了
【解题报告】Leecode 500. 键盘行——Leecode每日一题系列
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天是堅(jiān)持每日一題打卡第七天
題目描述
給你一個(gè)字符串?dāng)?shù)組 words ,只返回可以使用在 美式鍵盤(pán) 同一行的字母打印出來(lái)的單詞。鍵盤(pán)如下圖所示。
美式鍵盤(pán) 中:
第一行由字符 “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] 由英文字母(小寫(xiě)和大寫(xiě)字母)組成
核心思路:哈希表打表映射,一一匹配即可。
耗時(shí):0ms
class Solution { public:vector<string> findWords(vector<string>& words) {vector<string>res;unordered_map<char, int>um[3];um[0]['q'] = um[0]['w'] = um[0]['e'] = um[0]['r'] = um[0]['t'] = um[0]['y'] = um[0]['u'] = um[0]['i'] = um[0]['o'] = um[0]['p'] = 1;um[1]['a'] = um[1]['s'] = um[1]['d'] = um[1]['f'] = um[1]['g'] = um[1]['h'] = um[1]['j'] = um[1]['k'] = um[1]['l'] = 1;um[2]['z'] = um[2]['x'] = um[2]['c'] = um[2]['v'] = um[2]['b'] = um[2]['n'] = um[2]['m'] = 1;for(auto s : words) {int t = 0;if(um[0][tolower(s[0])] == 1) t = 0;else if(um[1][tolower(s[0])] == 1) t = 1;else if(um[2][tolower(s[0])] == 1) t = 2;for(auto i : s) {if(um[t][tolower(i)] == 0) goto loop;}res.push_back(s);loop:;}return res;} };零星的變好,最后也會(huì)如星河般閃耀
總結(jié)
以上是生活随笔為你收集整理的【解题报告】Leecode 500. 键盘行——Leecode每日一题系列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2020云栖大会,宜搭发布专业开发者能力
- 下一篇: 【双百解法】2058. 找出临界点之间的