Zigzag Conversion

 1 var convert = function(s, numRows) {
 2     if (numRows === 1) {
 3         return s;
 4     }
 5 
 6     var i, j,
 7         count = 0,
 8         colDirect = true,
 9         row = 0,
10         col = 0,
11         map = [];
12 
13     for (i = 0; i < s.length; i++) {
14         map[i] = [];
15     }
16 
17     for (i = 0; i < s.length; i++) {
18         map[row][col] = s[i];
19 
20         if (colDirect) {
21             row++;
22         } else {
23             row--;
24             col++;
25         }
26 
27         count++;
28 
29         if (colDirect && count === numRows) {
30             row -= 2;
31             col++;
32             count = 0;
33             colDirect = false;
34         }
35 
36         if (!colDirect && count === numRows - 2) {
37             count = 0;
38             colDirect = true;
39         }
40     }
41 
42     var res = "";
43     for (i = 0; i < map.length; i++) {
44         for (j = 0; j < map[i].length; j++) {
45             if (map[i][j]) {
46                 res += map[i][j];
47             }
48         }
49     }
50 
51     return res;
52 };

 

posted @ 2015-12-24 20:32  叫我霍啊啊啊  阅读(115)  评论(0编辑  收藏  举报