Keyboard Row
Description:
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.
问题描述:
给定一组字符串,返回键盘上只需要用一排键就能打出的字符串。
假设输入的字符串只包含字母。一个字符可以使用多次。
Solution:
使用正则表达式进行匹配。
class Solution {
public String[] findWords(String[] words) {
return Stream.of(words).filter(s -> s.toLowerCase().matches("[qwertyuiop]*|[asdfghjkl]*|[zxcvbnm]*")).toArray(String[]::new);
}
}
也可以考虑用一个笨办法,将键盘上每一行的字符都存下来比如[“qwertyuiop”,”asdfghjkl”,”zxcvbnm”],对每个字符串进行匹配。