1324. 竖直打印单词

给你一个字符串 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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值