在Python中垂直打印单词
假设我们有一个字符串s。我们必须垂直查找所有单词,顺序与它们在s中出现的顺序相同。这里的单词以字符串列表的形式返回,必要时我们必须用空格来完成。(不允许使用尾随空间)。每个单词只能放在一列上,而在一列中只有一个单词。因此,如果输入字符串是“HOWAREYOU”,那么输出将是[“HAY”,“ORO”,“WEU”]
为了解决这个问题,我们将遵循以下步骤-
s:=创建一个由空格分隔的字符串列表,创建一个空数组x,设置row=0
对于s中的每个单词I,设置row:=最大行和i的长度
col:=s的长度
制作一个数组并填充空字符串,其大小为该行
因为我的范围是0到col–1
当i–ans[j]的长度>=1时,ans[j]:=ans[j]串联“”
ans[j]:=ans[j]连接s[i,j]
将j增加1
j:=0
而j<s[i]的长度
返回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"]