字串Z型輸出

2021-08-16 04:58:08 字數 1113 閱讀 8588

這道題目是字串處理的題目。輸入乙個字串和乙個數字,將字串填入倒z形輸入字串,然後按照列讀取字元,得到乙個新的字元,輸出這個字元。例如:字串"paypalishiring",3pa

hnap

lsii

gyir

得到的新字元是」pahnaplsiigyir」。

這題只是簡單的字串處理。首先,我們可以對z形字串進行簡單優化一下,將z中的「折」合起來。比如:「abcdefghijkl」,4ag

bfhl

ceik

dj優化後:ag

bfhl

ceik

dj不難發現,得到的結果不變,而列表的列數減少了。在c和c++中可以直接定義乙個二維陣列,將字元讀入,然後直接讀取即可。但是用python初始化列表比較麻煩,我覺得直接通過下標規律可以直接得到,第一行和最後一行下乙個下標是上乙個+ 2*numrows – 2;而其他是先+ 2*(numrows - i) – 2 再+ 2*i,i是第幾行。

class solution(object):

def convert(self, s, numrows):

""":type s: str

:type numrows: int

:rtype: str

"""size = len(s)

if size <= numrows or numrows == 1:

return s

ans = ''

i = 0

while i < numrows:

j = i

if i == 0 or i == numrows - 1:

while j < size:

ans += s[j]

j += 2*numrows - 2

if 2 * numrows - 2 == 0:

break

else:

while j < size:

ans += s[j]

j += 2*(numrows - i) - 2

if j >= size:

break

ans += s[j]

j += 2*i

i += 1

return ans

7 1 Z字形輸出字串

本題要求你按照 z 字形輸出乙個字串。例如,對於字串 abcdefghij 若輸出寬度為 4,則第一行輸出abcd,第二行輸出hgfe,第三行輸出ij 若寬度為 3,則第一行輸出abc,第二行輸出fde,第三行輸出ghi,第四行輸出j j前帶有兩個空格 第一行輸入乙個不超過 100 的正整數 n,表...

LeeteCode 6字串Z型變換

用最原始的方法 1.先把字串轉換成n行2維陣列,按照規律存入二維陣列 2.然後對二維陣列 遍歷,存到目標字串 3 注意素組越界訪問和邊界值的設定 這個方法比較笨。執行的效率不高 define max size 1000 char converttomatrix char s,int numrows ...

帶T和Z的時間字串轉Long型

帶t和z的時間字串 string time 2017 11 18t07 12 06.615z 思路 1.先將最後的字母 z 替換為 utc 注意在utc前面有個空格!time time.replace z utc 2.使用常規的 dateformat來轉換 dateformat format new...