zoukankan      html  css  js  c++  java
  • 500. Keyboard Row

    链接

    500. Keyboard Row

    题意

    给定一个单词数组,返回那些能仅用键盘上一行字母构成的单词
    注意:

    1. 可以重复使用字母
    2. 忽略大小写(全部视为小写)

    思路

    将每行字母各自存放到一个数组里面,然后分别遍历,用HashMap为三组字母放入不同的key值,以此来区分某个字母属于键盘上的哪一行。
    然后对给定单词数组进行遍历,只需拿到每个单词的首字母,然后用后面的字母一一与首字母进行比较,判断map的value值是否相等即可。
    若全部相等,则说明该单词符合条件。

    代码

    Java:

    public class Solution {
        public String[] findWords(String[] words) {
            String arr1[] = {"q", "w", "e", "r", "t", "y", "u", "i", "o", "p"};
            String arr2[] = {"a", "s", "d", "f", "g", "h", "j", "k", "l"};
            String arr3[] = {"z", "x", "c", "v", "b", "n", "m"};
            HashMap map = new HashMap();
            ArrayList list = new ArrayList();
            for (int i = 0; i < 10; i++) {
                map.put(arr1[i], 1);
            }
            for (int i = 0; i < 9; i++) {
                map.put(arr2[i], 2);
            }
            for (int i = 0; i < 7; i++) {
                map.put(arr3[i], 3);
            }
    
            for (int i = 0; i < words.length; i++) {
                boolean flag = true;
                for (int j = 0; j < words[i].length(); j++) {
                    if (map.get("" + words[i].toLowerCase().charAt(0)) != map.get("" + words[i].toLowerCase().charAt(j))) {
                        flag = false;
                        break;
                    }
                }
                if (flag) {
                    list.add(words[i]);
                }
            }
            String[] ans = new String[list.size()];
            return (String[]) list.toArray(ans);
        }
    }
    
  • 相关阅读:
    大数据时代的艺术金融
    与“数”同行:大数据驱动大学变革
    与“数”同行:大数据驱动大学变革
    财务信息化:大数据小时代
    财务信息化:大数据小时代
    Python导出DBF文件到Excel的方法
    Python导出DBF文件到Excel的方法
    SolrJ的入门
    Spring Data Solr入门
    使用solr进行配置文件
  • 原文地址:https://www.cnblogs.com/zyoung/p/6542314.html
Copyright © 2011-2022 走看看