中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。
输入格式:
输入在第一行给出一个正整数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])