package com.atguigu.demo;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author: lb
* @Date: 2021/06/26/22:10
* <p>
* 给你一个字符串数组 words ,只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。
* <p>
* 美式键盘 中:
* <p>
* 第一行由字符 "qwertyuiop" 组成。
* 第二行由字符 "asdfghjkl" 组成。
* 第三行由字符 "zxcvbnm" 组成。
* <p>
* <p>
*
* <p>
* 示例 1:
* <p>
* 输入:words = ["Hello","Alaska","Dad","Peace"]
* 输出:["Alaska","Dad"]
* 示例 2:
* <p>
* 输入:words = ["omk"]
* 输出:[]
* 示例 3:
* <p>
* 输入:words = ["adsdf","sfd"]
* 输出:["adsdf","sfd"]
*/
class Solution {
public String[] findWords(String[] words) {
List<String> one = Arrays.asList("qwertyuiop".split(""));
List<String> two = Arrays.asList("asdfghjkl".split(""));
List<String> three = Arrays.asList("zxcvbnm".split(""));
List<String> ansStr = new ArrayList<String>();
for (String word : words) {
String[] split = word.toLowerCase().split("");
int temp = split.length;
int index = 0;
for (String s : split) {
if (one.contains(s)) {
index++;
}
}
if (index == temp) {
ansStr.add(word);
}
}
for (String word : words) {
String[] split = word.toLowerCase().split("");
int temp = split.length;
int index = 0;
for (String s : split) {
if (two.contains(s)) {
index++;
}
}
if (index == temp) {
ansStr.add(word);
}
}
for (String word : words) {
String[] split = word.toLowerCase().split("");
int temp = split.length;
int index = 0;
for (String s : split) {
if (three.contains(s)) {
index++;
}
}
if (index == temp) {
ansStr.add(word);
}
}
String[] ans = new String[ansStr.size()];
for (int i = 0; i < ansStr.size(); i++) {
ans[i] = ansStr.get(i);
}
return ansStr.size() == 0 ? new String[]{} : ans;
}
public static void main(String[] args) {
String[] words = new String[]{"adsdf","sfd"};
String[] ans = new Solution().findWords(words);
for (String an : ans) {
System.out.println(an);
}
}
}