日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

500. 键盘行

發布時間:2023/11/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 500. 键盘行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

500. 鍵盤行

給你一個字符串數組 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] 由英文字母(小寫和大寫字母)組成

解題思路

使用3個set分別記錄鍵盤每一行的所有字符,對每個字符串判斷,是否字符串的每個字符都屬于屬于鍵盤的同一行

代碼

class Solution { public:vector<string> findWords(vector<string> &words) {vector<string> res;unordered_set<char> set1{'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'};unordered_set<char>set2{'a', 's', 'd', 'f', 'g', 'h','j', 'k', 'l'};unordered_set<char>set3{'z', 'x','c', 'v','b', 'n','m'};for (string s:words) {int i = 0;for (; i < s.length(); ++i) {if (set1.find(tolower(s[i])) == set1.end())break;}if (i == s.length()) {res.push_back(s);continue;}i = 0;for (; i < s.length(); ++i) {if (set2.find(tolower(s[i])) == set2.end())break;}if (i == s.length()) {res.push_back(s);continue;}i = 0;for (; i < s.length(); ++i) {if (set3.find(tolower(s[i])) == set3.end())break;}if (i == s.length()) {res.push_back(s);continue;}}return res;} };

總結

以上是生活随笔為你收集整理的500. 键盘行的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。