N字形變化 flag標籤轉換方向

2022-09-05 03:54:15 字數 1086 閱讀 4739

題目:

將乙個給定字串根據給定的行數,以從上往下、從左到右進行 z 字形排列。

比如輸入字串為 "leetcodeishiring" 行數為 3 時,排列如下:

l c i r

e t o e s i i g

e d h n

之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如:"lciretoesiigedhn"。

請你實現這個將字串進行指定行數變換的函式:

string convert(string s, int numrows);

示例 1:

輸入: s = "leetcodeishiring", numrows = 3

輸出: "lciretoesiigedhn"

示例 2:

輸入: s = "leetcodeishiring", numrows = 4

輸出: "ldreoeiiecihntsg"

解釋:l d r

e o e i i

e c i h n

t s g

/*

* * @param s

* @param numrows

* @return */

var convert = function

(s, numrows)

let str = new

array();

for(let i=0;i)

let index =0;

let flag = -1;

let j=0;

while(indexj +=flag;//將資料進行反向,也就是s[index]中元素下一次應該連線到的元素索引值

}return str.join("")

};

實現方式:主要是通過乙個flag轉換方向以及利用陣列,將字串遍歷放到對應的陣列之中,最後將陣列進行合併lc

iret

oesi

iged

hn可以看出其是一行一行的輸出,即將行索引相同的元素放置在同乙個字串中進行連線,最後將整個陣列連線就可以了。

N 字形變換

n 字形變換 user hihone date 2019 2 1 time 14 26 description 將乙個給定字串根據給定的行數,以從上往下 從左到右進行 n 字形排列。比如輸入字串為 leetcodeishiring 行數為 3 時,排列如下 l c i r e t o e s i i...

LeedCode刷題筆記 Z字形變化

將乙個給定字串 s 根據給定的行數 numrows 以從上往下 從左到右進行 z 字形排列。比如輸入字串為 paypalishiring 行數為 3 時,排列如下 p a h n a p l s i i g y i r 之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如 pahnaplsi...

Z字形變換

題目 將字串 paypalishiring 以z字形排列成給定的行數 p a h n a p l s i i g y i r 之後從左往右,逐行讀取字元 pahnaplsiigyir 思路 通過從左向右迭代字串,我們可以輕鬆地確定字元位於 z 字形圖案中的哪一行。演算法 我們可以使用 min num...