6 ZigZag Conversion 之字轉換

2021-08-21 03:32:29 字數 1444 閱讀 4771

題目要求給定乙個字串,然後將其按順序以之字排列,然後將字母串按行來輸出,其中之子字元迴路的行數由引數numrows控制。

比如,

example1:

輸入 s= 「paypalishiring」,numrows=3, 輸出=」pahnaplsiigyir」

p      a       h       n

a  p  l   s   i    i   g

y       i        r

example2:

輸入 s= 「paypalishiring」,numrows=4, 輸出=」pinalsigyahrpi」

p            i             n

a       l  s        i    g

y    a     h   r

p            i

這個題目,我先對給出的兩個例子進行了分析,首先第一行和最後一行的相鄰元素在輸入字串中的位置都差了numrows*2-2,而中間行的字元在輸入字串的位置相差都是有規律的,比如example中的第二行間隔為4,2,4,2,4……,第三行間隔為2,4,2,4……。因此,也就是相鄰間隔值相加為numrows*2-2。因此,**如下所示:

c++:

@by_chandepire

string convert(string s, int numrows)

}for(k=numrows-1;kresult += s[k];

return result;

}

python:

@by_chandepire

defconvert

(self, s, numrows):

""" :type s: str

:type numrows: int

:rtype: str

"""result = ""

length = len(s)

if length <= numrows or numrows == 1:

return s

k = 0

temp = (numrows<<1) - 2

while k < length:

result = result + s[k]

k = k + temp

for i in range(1,numrows-1):

j = (i<<1)

k = i

while k < length:

result = result + s[k]

j = temp - j

k = k + j

k = numrows - 1

while kreturn result

CentOS 6 IPv6 關閉方法

方法一 centos 6 預設安裝後,ipv6是自動開啟的,但是現在ipv6還沒有普及基本用不到這個功能,建議關閉ipv6模組。下面介紹一下關閉方法。說明 藍色 命令名稱 淺綠 命令引數淺藍 選項 紫色 目錄 系統環境 centos 6.2 i686 1 檢視系統是否開啟ipv6 a 通過網絡卡屬性...

es6 最佳入門實踐 6

symbol是es6中一種新增加的資料型別,它表示獨一無二的值。es5中我們把資料型別分為基本資料型別 字串 數字 布林 undefined null 和引用資料型別 object 在es6中新增的symbol資料型別劃分到基本資料型別 為什麼會有這樣一種資料型別呢?別人給了你乙個定義好的物件 va...

iphone6以及iphone6plus適配

手頭維護的乙個老專案,因為需要從ios5.1開始支援,所以在頁面適配上基本上使用硬編碼和autoresizemask來實現iphone4 iphone5s的適配,情況看起來還算不錯。到了iphone6以及以上的機型情況就有些不同了。在補充了iphone6的default page之後,很多頁面右邊出...