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+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.