给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。
示例:
输入: ["Hello", "Alaska", "Dad", "Peace"] 输出: ["Alaska", "Dad"]
class Solution {
public:
vector<string> findWords(vector<string>& words) {
vector<string> vec;
for(auto str:words)
vec = danci(str,vec);
return vec;
}
private:
vector<string> danci (string str, vector<string> &vec)
{
string str1="qwertyuiop";
string str2="asdfghjkl";
string str3="zxcvbnm";
string tem=str;
transform(str.begin(),str.end(),str.begin(),::tolower);
if(str1.find(str[0])!=-1)
{
for(int i=1;i<str.size();i++)
if(str2.find(str[i])!=-1 || str3.find(str[i])!=-1)
return vec;
}
if(str2.find(str[0])!=-1)
{
for(int i=1;i<str.size();i++)
if(str1.find(str[i])!=-1 || str3.find(str[i])!=-1)
return vec;
}
if(str3.find(str[0])!=-1)
{
for(int i=1;i<str.size();i++)
if(str1.find(str[i])!=-1 || str2.find(str[i])!=-1)
return vec;
}
vec.push_back(tem);
return vec;
}
};