Python垂直列印單詞
假設我們有一個字串s。我們必須按其在s中出現的順序查詢所有垂直方向上的單詞。這裡單詞作為字串列表返回,我們需要在必要時用空格補齊。(不允許尾隨空格)。每個單詞只放在一列中,並且一列中只有一個單詞。因此,如果輸入字串是“HOW ARE YOU”,則輸出將為[“HAY”, “ORO”, “WEU”]。
為了解決這個問題,我們將遵循以下步驟:
s := 將字串按空格分割成一個字串列表,建立一個空陣列x,設定row = 0
對於s中的每個單詞i,設定row := row和i的長度的最大值
col := s的長度
建立一個數組並用空字串填充,其大小為row
對於i從0到col – 1的範圍
j := 0
當j < s[i]的長度
當i – ans[j]的長度 >= 1時,執行ans[j] := ans[j]連線“ ”
ans[j] := ans[j]連線s[i, j]
j自增1
返回ans
示例(Python)
讓我們看看下面的實現以更好地理解:
class Solution(object): def printVertically(self, s): s = s.split(" ") x = [] row = 0 for i in s: row = max(row, len(i)) col = len(s) ans = ["" for i in range(row)] j = 0 for i in range(col): j = 0 while j < len(s[i]): #print(j, i) while i - len(ans[j]) >= 1: ans[j] += " " ans[j] += s[i][j] j += 1 return ans ob = Solution() print(ob.printVertically("HOW ARE YOU")) print(ob.printVertically("TO BE OR NOT TO BE"))
輸入
"HOW ARE YOU" "TO BE OR NOT TO BE"
輸出
["HAY","ORO","WEU"] ["TBONTB","OEROOE"," T"]
廣告