PAT1 1031 Hello World for U

博客围绕字符串特定格式输出问题展开。给定字符串,要求以特定型输出,说明了型输出的规则,包括左右列长度、底部长度与字符串总长度的关系。还给出输入输出要求、样例,最后对问题进行了解析,指出按规则计算后输出即可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接
我的github

题目大意

给一个字符串,要求以U型输出这个字符串,例如helloworld,输出:

h**d
e**l
l**r
lowo

为了展示方便我将空格替换成了*
U型输出时的左边一列的长度left等于右边一列的长度right,设底部的长度bottom,字符串的总长度为n。则有left+right+bottom-2=n,且leftright尽可能的大

输入

每组包含一个测试用例,每个用例是一行字符串且长度不少于5不大于80

输出

对每个用例以U型输出字符串

样例输入

helloworld!

样例输出

h     ~~~    !
e     ~~~    d
l     ~~~    l
lowor

解析

由题意left=right=(n + 2) / 3bottom=left + (n + 2) % 3,然后按照要求输出即可

# -*- coding: utf-8 -*- 
# @Time : 2019/5/28 18:17 
# @Author : ValarMorghulis 
# @File : 1031.py
def solve():
    s = input()
    left = (len(s) + 2) // 3
    bottom = left + (len(s) + 2) % 3
    for i in range(left):
        if i != left-1:
            print(s[i], end='')
            for j in range(bottom-2):
                print(' ', end='')
            print(s[len(s)-1-i])
        else:
            print(s[left-1:left+bottom-1])


if __name__ == "__main__":
    solve()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值