给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。
详见:https://leetcode.com/problems/keyboard-row/description/
C++:
class Solution { public: vector<string> findWords(vector<string>& words) { vector<string> res; unordered_set<char> row1{'q','w','e','r','t','y','u','i','o','p'}; unordered_set<char> row2{'a','s','d','f','g','h','j','k','l'}; unordered_set<char> row3{'z','x','c','v','b','n','m'}; for (string word : words) { int one = 0, two = 0, three = 0; for (char c : word) { if (c < 'a') { c += 32; } if (row1.count(c)) { one = 1; } if (row2.count(c)) { two = 1; } if (row3.count(c)) { three = 1; } if (one + two + three > 1) { break; } } if (one + two + three == 1) { res.push_back(word); } } return res; } };
参考:http://www.cnblogs.com/grandyang/p/6421749.html