给你一个字符串 s。请你按照单词在 s 中的出现顺序将它们全部竖直返回。
单词应该以字符串列表的形式返回,必要时用空格补位,但输出尾部的空格需要删除(不允许尾随空格)。
每个单词只能放在一列上,每一列中也只能有一个单词。示例 1:
输入:s = "HOW ARE YOU"
输出:["HAY","ORO","WEU"]
解释:每个单词都应该竖直打印。
"HAY"
"ORO"
"WEU"1.暴力
class Solution:
def printVertically(self, s: str) -> List[str]:
m=max([ len(one) for one in s.split()])
s=s.split()
for i in range(len(s)):
if len(s[i])!=m:
s[i]+=(m-len(s[i]))*' '
#补齐成一样的长度
res=[]
#遍历每一个位置,每个位置取每个词中相对应的字母
for i in range(m):
tmp=[]
for j in range(len(s)):
tmp.append(s[j][i])
res.append(''.join(tmp).rstrip())
return res
class Solution:
def printVertically(self, s: str) -> List[str]:
words=s.split()
maxlen=max(len(w) for w in words)
res=[]
for i in range(maxlen):
tmp = "".join([w[i] if i<len(w) else " " for w in words])
res.append(tmp.rstrip())
return res