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

    500. Keyboard Row

    1、LeetCode上的简单题,写了好半天,代码还比较多,刚学,能过就满意了;

    2、整体思路(待会儿写):

     1 <script>
     2         // arr=["Hello", "Alaska", "Dad", "Peace"]
     3         var findWords = (words) => {
     4             // 把所有字母放在一个字符串中,利用index值
     5             //  0-9  表示键盘上第一行字母,即:q --->p
     6             // 10-18 表示键盘上第二行字母,即:a --->l
     7             // 19-25 表示键盘上第二行字母,即:z --->m    
     8             let rowArr = "qwertyuiopasdfghjklzxcvbnm";
     9             // 定义一个空数组,接收符合条件的元素
    10             let resArr = [];
    11             // 定义一个标志位,true表示符合条件,false表示不符合
    12             let flag = null;
    13             // 第一次循环,遍历words数组中的每个元素
    14             for (let i = 0; i < words.length; i++) {
    15                 //定义一个空数组,转换成小写的words数组
    16                 let arr = [];
    17                 //大写转小写
    18                 arr[i] = words[i].toLowerCase();
    19                 // 判断第一个字母是否在0-9之间,在,则表示表示第一排字母
    20                 if (rowArr.indexOf(arr[i][0]) < 10) {
    21                     // flag复位,因为每处理完一次words中的一个元素后,flag的值会发生变化,所以每次进到一个if中需要复位到true
    22                     flag = true;
    23                     // 遍历words[i]中的每个字母
    24                     for (let j = 0; j < arr[i].length; j++) {
    25                         if (rowArr.indexOf(arr[i][j]) >= 10) {
    26                             flag = false
    27                             break;
    28                         }
    29                     }
    30                 }
    31 
    32                 // 判断第一个字母是否在9-18之间,在,则表示表示第二排字母
    33                 if (rowArr.indexOf(arr[i][0]) >= 10 && rowArr.indexOf(arr[i][0]) <= 18) {
    34                     flag = true;
    35                     for (let j = 0; j < arr[i].length; j++) {
    36                         if (rowArr.indexOf(arr[i][j]) <= 9 || rowArr.indexOf(arr[i][j]) >= 19) {
    37                             flag = false;
    38                             break;
    39                         }
    40                     }
    41                 }
    42 
    43                 // 判断第一个字母是否在18-25之间,在,则表示表示第三排字母
    44                 if (rowArr.indexOf(arr[i][0]) >= 19) {
    45                     flag = true;
    46                     for (let j = 0; j < arr[i].length; j++) {
    47                         if (rowArr.indexOf(arr[i][j]) <= 18) {
    48                             flag = false;
    49                             break;
    50                         }
    51                     }
    52                 }
    53                 if (flag) {
    54                     resArr.push(words[i])
    55                 }
    56             }
    57             return resArr
    58         }
    59 
    60         console.log(findWords(["Hello", "Alaska", "Dad", "Peace"]));
    61     </script>
  • 相关阅读:
    java第五周作业
    ajax初探--实现简单实时验证
    Html+CSS二周目--->常用概念
    Html+CSS--->第一周初探
    Servlet细节整合
    多线程基础
    设计模式之单例模式(Singleton)
    配置文件Java读写
    Java基础之IO流
    JDBC基础
  • 原文地址:https://www.cnblogs.com/MisterZZL/p/10653301.html
Copyright © 2011-2022 走看看