L1-039 古风排版--Python

中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。

输入格式:

输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。

输出格式:

按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。

输入样例:

4
This is a test case

输出样例:

asa T
st ih
e tsi
 ce s

解决方法:注意观察规律,从输入字符串来看可以根据规律拼接一个新的字符串,比如示例给出的字符串,将他拼接的话使用原本字符串的索引既是s[-4](根据计算行数=补全之后的字符串长度/n,得字符串尽心补全 )s[-8],s[-12],s[-16],s[-20]\n

s[-3],s[-7],s[-11],s[-15],s[-19]

相信大家应该发现规律了

其他思路下载代码注释里了,注意观看!

#n位行数
n = int(input())
# 接受字符串
this = input()

# 计算需要补全的空格
num = n - len(this) % n
# num等于0的时候说明不用补全空格
if num != n: this = this + ' ' * num


# 根据输入字符转换成从右到左竖排文字
def temp(nu):
    ls = ''
    # 规律每一行是从-n索引开始每隔n个取一字符
    # 下一行则是从-n+1索引开始每隔n个字符取一字符
    for i in range(nu, -len(this) - 1, -n):
        ls += this[i]
    return ls + '\n'


# 最后需要拼接的字符串
lss = ''
# 控制每一行的开始位置
for i in range(-n, 0, 1):
    lss += temp(i)

print(lss[:-1])

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值