不是什么高效率的做法,就是写了一个映射,还是以练习java为主。
class Solution {
public static List<String> getValidT9Words(String num, String[] words) {
HashMap<Character, Character> Sites = new HashMap<Character, Character>();
char ch='a';
char data='2';
for(int i=1;i<=15;i++){
Sites.put(ch, data);
if(i%3==0)data++;
ch= (char) (ch+1);
}
for(int i=16;i<=19;i++){
Sites.put(ch, '7');
ch= (char) (ch+1);
}
for(int i=20;i<=22;i++){
Sites.put(ch, '8');
ch= (char) (ch+1);
}
for(int i=23;i<=26;i++){
Sites.put(ch, '9');
ch= (char) (ch+1);
}
List<String> list=new ArrayList<>();
int len= words.length;
for(int i=0;i<len;i++){
int size=words[i].length();
int flag=0;
for(int j=0;j<size;j++){
if(Sites.get(words[i].charAt(j))!=num.charAt(j)){
flag=1;
}
}
if(flag==0)list.add(words[i]);
}
return list;
}
}