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

leetcode-500-Keyboard Row

2019-11-11 03:05:45
字体:
来源:转载
供稿:网友

问题

题目:[leetcode-500]

思路

简单题,没什么说的。注意isOnlyOneRow里面常量字符串可以写成static。这样不用反复开辟和销毁。增强生存期。小心一点,找的时候用小写。

代码

class Solution {public: vector<string> findWords(vector<string>& words) { std::vector<std::string> ret; int sz = words.size(); for( int i = 0; i < sz; ++i ){ if( isOnlyOneRow(words[i]) ) ret.push_back(words[i]); } return ret; }PRivate: bool isOnlyOneRow(const std::string& s){ static const std::string keyBoardRow[] = { "qwertyuiop", "asdfghjkl", "zxcvbnm" }; int sz = s.size(); int rowNum = 0; for( int i = 0; i < sz; ++i ){ for( int k = 0; k < 3; ++k ){ if( std::find(keyBoardRow[k].begin(), keyBoardRow[k].end(), std::tolower(s[i])) != keyBoardRow[k].end() ){ if(!i) rowNum = k; else{ if( k != rowNum ) return false; } } } } return true; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表