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"]

更新於:2020年4月29日

4K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告