前言: {\color{Blue}前言:} 前言:本系列题使用的是“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度,如有需要可以直接查看对应专栏。发布个人的刷题笔记的同时,也是希望可以帮助到有需要的人,我会尽量的解释每一步代码,如有错误或者可以优化的地方还望各位优快云的朋友可以指出来。更新速度预计是每天不定时更新三道,若当天没有更新后期将会补上。
题目
根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的React/Babel干瘫痪了。这是个什么样的模块?就是在字符串前填充一些东西到一定的长度。例如用*
去填充字符串GPLT
,使之长度为10,调用left-pad的结果就应该是******GPLT
。Node社区曾经对left-pad紧急发布了一个替代,被严重吐槽。下面就请你来实现一下这个模块。
输入格式
输入在第一行给出一个正整数N
(
≤
1
0
4
)
(≤10^ 4)
(≤104)和一个字符,分别是填充结果字符串的长度和用于填充的字符,中间以1个空格分开。第二行给出原始的非空字符串,以回车结束。
输出格式:
在一行中输出结果字符串。
输入样例1:
15 _
I love GPLT
输出样例1:
____I love GPLT
输入样例2:
4 *
this is a sample for cut
输出样例2:
cut
题解
data = input().split() # 输入两个值并将其分割存储在列表 data 中
data2 = input() # 输入原始的非空字符串
length = len(data2) # 计算原始字符串的长度
if length < int(data[0]): # 如果原始字符串长度小于填充后的长度
a = int(data[0]) - length # 计算需要填充的字符数
print(a * data[1] + data2) # 输出填充后的字符串,填充字符重复 a 次,然后加上原始字符串
else: # 如果原始字符串长度大于等于填充后的长度
print(data2[-int(data[0]):]) # 输出原始字符串的后缀部分,保留后面的字符以满足填充后的长度要求
"""
data2[-int(data[0]):] 的含义是从字符串的末尾开始,取字符串的子字符串,
这个子字符串的起始位置是距离字符串末尾填充后的长度的位置,一直取到字符串的末尾。
这样做的目的是为了满足填充后的长度要求。"""