ggboy

LeetCode.KeyboardRow

2018-06-15

Given a List of words, return the words that can be typed using letters of alphabet on only one row’s of American keyboard like the image below.

键盘

Example 1:

Input: ["Hello", "Alaska", "Dad", "Peace"]
Output: ["Alaska", "Dad"]

Note:
You may use one character in the keyboard more than once.
You may assume the input string will only contain letters of alphabet.

implements.1

public static String[] findWords(String[] words) {
        String a1[] = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p" };
        String a2[] = { "a", "s", "d", "f", "g", "h", "j", "k", "l" };
        String a3[] = { "z", "x", "c", "v", "b", "n", "m" };
        char ch[];
        int i1 = 0;
        int i2 = 0;
        int i3 = 0;
        List<String> list = new ArrayList<String>();
        for (String str : words) {
            ch = str.toLowerCase().toCharArray();
            for (char c : ch) {
                if (Arrays.asList(a1).contains(String.valueOf(c))) {
                    i1++;
                    if (i1 == ch.length) {
                        list.add(str);
                        continue;
                    }
                }
            }
            for (char c : ch) {
                if (Arrays.asList(a2).contains(String.valueOf(c))) {
                    i2++;
                    if (i2 == ch.length) {
                        list.add(str);
                        continue;
                    }
                }
            }
            for (char c : ch) {
                if (Arrays.asList(a3).contains(String.valueOf(c))) {
                    i3++;
                    if (i3 == ch.length) {
                        list.add(str);
                        continue;
                    }
                }
            }
            i1 = 0;
            i2 = 0;
            i3 = 0;
        }
        return list.toArray(new String[] {});
    }

implements.2

public static String[] findWordss(String[] words) {
        return Stream.of(words).filter(s -> s.toLowerCase().matches("[zxcvbnm]*|[asdfghjkl]*|[qwertyuiop]*"))
                .toArray(String[]::new);
    }
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章