啊呀窝草。。尼玛JAVA写的真是烦啊,还不如去写Python算了,人家五六行我得30行。
class Solution {
public String[] findWords(String[] words) {
ArrayList<String> result = new ArrayList<>();
HashSet<Character> set1 = new HashSet<>();
HashSet<Character> set2 = new HashSet<>();
HashSet<Character> set3 = new HashSet<>();
intal_rows(set1,"QWERTYUIOPqwertyuiop");
intal_rows(set2,"ASDFGHJKLasdfghjkl");
intal_rows(set3,"ZXCVBNMzxcvbnm");
Sub(set1,words,result);
Sub(set2,words,result);
Sub(set3,words,result);
String[] s = new String[result.size()];
result.toArray(s);
return s;
}
private void intal_rows (HashSet<Character> set,String s)
{
for(int i =0;i<s.length();i++)
{
set.add(s.charAt(i));
}
}
private void Sub (HashSet<Character> set,String[] words,ArrayList<String> result)
{
for(String s :words)
{
int i =0;
for( i = 0 ;i<s.length();i++)
{
if(!set.contains(s.charAt(i)))
break;
}
if(i==s.length())
result.add(s);
}
}
}