在 Python 中垂直打印单词

pythonserver side programmingprogramming更新于 2025/11/4 7:40:17

假设我们有一个字符串 s。我们必须按照它们在 s 中出现的顺序垂直查找所有单词。这里单词以字符串列表的形式返回,必要时我们必须用空格填充。(不允许尾随空格)。每个单词只放在一列上,并且一列中只有一个单词。因此,如果输入字符串为"HOW ARE YOU",则输出将为 ["HAY","ORO","WEU"]

要解决这个问题,我们将遵循以下步骤 −

  • s := 创建一个由空格分隔的字符串列表,创建一个空数组 x,设置 row = 0

  • 对于 s 中的每个单词 I,设置 row := 行的最大值和 i 的长度

  • col := s 的长度

  • 创建一个数组并填充空字符串,其大小为行

  • 对于 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"]

相关文章


有用资源