leetcode[Keyboard Row]//待整理多种解法

来源:互联网 发布:拍淘宝衣服的模特要求 编辑:程序博客网 时间:2024/06/06 00:44

解法一:

public class Solution {    public String[] findWords(String[] words) {        Set<Character> row1 = new HashSet<>();        Set<Character> row2 = new HashSet<>();        Set<Character> row3 = new HashSet<>();        row1.addAll(Arrays.asList('Q','W','E','R','T','Y','U','I','O','P'));        row2.addAll(Arrays.asList('A','S','D','F','G','H','J','K','L'));        row3.addAll(Arrays.asList('Z','X','C','V','B','N','M'));                int[] index = new int[words.length];//用index来判断是否满足条件,1代表满足条件,0代表不满足条件        int count = 0;//用于计数,判断满足条件的字符串个数                for(int i = 0; i < words.length; i++){        //先判断这个字符串的第一个字符,将其归到哪一行去,再判断,空字符串单独处理        if(words[i].length() == 0){        index[i] = 1;        } else{        String upper = words[i].toUpperCase();//统一换成大写形式        char c = upper.charAt(0);        if(row1.contains(c)){//这个字符串应该归第一行处理        boolean flag = true;        for(int j = 1; j < upper.length(); j++){        if(!row1.contains(upper.charAt(j))){        flag = false;        break;        }        }        if(flag){        index[i] = 1;        count++;        } else{        index[i] = 0;        }                } else if(row2.contains(c)){//这个字符串应该归第二行处理        boolean flag = true;        for(int j = 1; j < upper.length(); j++){        if(!row2.contains(upper.charAt(j))){        flag = false;        break;        }        }        if(flag){        index[i] = 1;        count++;        } else{        index[i] = 0;        }                } else{//这个字符串应该归第三行处理        boolean flag = true;        for(int j = 1; j < upper.length(); j++){        if(!row3.contains(upper.charAt(j))){        flag = false;        break;        }        }        if(flag){        index[i] = 1;        count++;        } else{        index[i] = 0;        }                }        }        }                String[] res = new String[count];        int move = 0;        for(int i = 0; i < index.length; i++){        if(index[i] == 1){        res[move++] = words[i];        }        }                return res;    }}


原创粉丝点击