zoukankan      html  css  js  c++  java
  • [LeetCode][JavaScript]ZigZag Conversion

    ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)

    P   A   H   N
    A P L S I I G
    Y   I   R
    
    And then read line by line: "PAHNAPLSIIGYIR"

    Write the code that will take a string and make this conversion given a number of rows:

    string convert(string text, int nRows);
    convert("PAYPALISHIRING", 3) should return "PAHNAPLSIIGYIR".
     
     
     
     

     
    号称easy,我怎么感觉并不是很水...
    colDirect标记是走竖的还是走斜的,根据情况调整下标。
    该死的js还没有二维数组。
     1 /**
     2  * @param {string} s
     3  * @param {number} numRows
     4  * @return {string}
     5  */
     6 var convert = function(s, numRows) {
     7     var i, j;
     8     if(numRows === 1){
     9         return s;
    10     }
    11     var count = 0;
    12     var colDirect = true;
    13     var row = 0, col = 0;
    14     var map = [];
    15     for(i = 0; i < s.length; i++){
    16         map[i] = [];
    17     }
    18     for(i = 0; i < s.length; i++){
    19         if(colDirect){
    20             map[row][col] = s[i];
    21             row++;
    22             count++;
    23         }else{
    24             map[row][col] = s[i];
    25             row--;
    26             col++;           
    27             count++;
    28         }
    29         if(colDirect && count === numRows){
    30             count = 0;
    31             row -= 2;
    32             col++; 
    33             colDirect = false;
    34         }
    35         if(!colDirect && count === numRows - 2){
    36             count = 0;
    37             colDirect = true;
    38         }
    39     }
    40     var res = "";
    41     for(i = 0; i < map.length; i++){
    42         for(j = 0; j < map[i].length; j++){
    43             if(map[i][j]){
    44                 res += map[i][j];
    45             }
    46         }
    47     }
    48     return res;
    49 };
     
     
  • 相关阅读:
    一:多线程--多线程简单介绍
    五:网络--多线程断点下载
    四:网络--NSURLConnection基本使用
    三:网络--数据安全/加密
    二:网络--GET请求和POST请求
    一:网络--HTTP协议
    源代码管理工具GIT
    MyBatis 多参问题
    jquery 事件
    jquery点击事件
  • 原文地址:https://www.cnblogs.com/Liok3187/p/4542405.html
Copyright © 2011-2022 走看看