• Leetcode#500. Keyboard Row(键盘行)


    题目描述

    给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。

    示例1:

    输入: ["Hello", "Alaska", "Dad", "Peace"]
    输出: ["Alaska", "Dad"]
    

    注意:

    1. 你可以重复使用键盘上同一字符。
    2. 你可以假设输入的字符串将只包含字母。

    思路

    把键盘中的字母和其所在行数放到map中,然后比较一个字符串中是否都来自一行。

    代码实现

    package HashTable;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 500. Keyboard Row(键盘行)
     * 给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。
     */
    public class Solution500 {
        public static void main(String[] args) {
            Solution500 solution500 = new Solution500();
            String[] words = {"Hello", "Alaska", "Dad", "Peace"};
            solution500.findWords(words);
        }
    
        /**
         * 把键盘中的字母和其所在行数放到map中
         *
         * @param words
         * @return
         */
        public String[] findWords(String[] words) {
            String[] keyboard = {"QWERTYUIOP", "ASDFGHJKL", "ZXCVBNM"};
            List<String> res = new ArrayList<>();
            Map<Character, Integer> map = new HashMap<>();
            for (int i = 0; i < keyboard.length; i++) {
                for (char c : keyboard[i].toCharArray()) {
                    map.put(c, i);
                }
            }
            int index;
            for (String word :
                    words) {
                index = map.get(word.toUpperCase().toCharArray()[0]);
                for (char c :
                        word.toUpperCase().toCharArray()) {
                    if (map.get(c) != index) {
                        index = -1;
                        break;
                    }
                }
                if (index != -1) {
                    res.add(word);
                }
            }
            return res.toArray(new String[res.size()]);
        }
    }
    
  • 相关阅读:
    关于makefile
    代理服务器简要
    配置ftp服务
    Nginx服务器的Web请求处理机制
    Nginx模块
    linux的开机网络设置
    mysql数据库优化的常见方法
    笔试题【二维矩阵操作,文件存取】
    水仙花数的求解
    9x9乘法表输出[Java]
  • 原文地址:https://www.cnblogs.com/wupeixuan/p/9655059.html
Copyright © 2020-2023  润新知