首页 > 学院 > 开发设计 > 正文

500. Keyboard Row

2019-11-08 02:55:35
字体:
来源:转载
供稿:网友

Given a List of Words, return the words that can be typed using letters of alphabet on only one row’s of American keyboard like the image below. Example 1:

Input: ["Hello", "Alaska", "Dad", "Peace"]Output: ["Alaska", "Dad"]

Note: You may use one character in the keyboard more than once. You may assume the input string will only contain letters of alphabet.

class Solution {public: bool isSame(int pos0, int pos1){ if(pos0 <= 9 && pos1 <= 9) return true; else if(9 < pos0 && pos0 <= 18 && 9 < pos1 && pos1 <= 18) return true; else if(18 < pos0 && pos0 <= 25 && 18 < pos1 && pos1 <= 25) return true; else return false; } vector<string> findWords(vector<string>& words) { string mode = "qwertyuiopasdfghjklzxcvbnm"; int first = 9, second = 18, third = 25; vector<string> v; for(int i = 0; i < words.size(); ++i){ string str = words[i]; int j = 1, len = str.length(); for(; j < len; ++j){ int pos0 = mode.find(tolower(str[j - 1]), 0); int pos1 = mode.find(tolower(str[j]), 0); if(!isSame(pos0, pos1)) break; } if(j == len) v.push_back(str); } return v; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表