解题思路
本题的关键是对输入的字符串进行拆分、处理,并根据给定的延迟p计算和声字符串。具体步骤如下:
1. 题目解析
- 原始字符串由若干个小节(由
|分隔)组成。
- 对于每一个小节,和声字符串在小节前加上p个下划线(
_)来延迟输出。
- 如果p大于或等于该小节的长度,则和声字符串由全下划线组成。
- 如果p小于小节的长度,则和声的前p个字符是下划线,剩余的部分是原小节的内容。
P2777.第1题-字符串和声
题目内容
小歪正在学习字符串和声,字符串仅由小写字母和连接线′−′构成。我们使用竖线′∣′来划分小结,例如,
∣do−do−re∣re−−−∣ 代表两个小结,其中,第一个小结长度为8,即"do−do−re";第二个小结长度为5,即"re−−−"
随后,我们定义字符串的和声为:字符串和声小节数量和各个小结的长度均与原字符串一致,唯一的区别是其会比原字符串晚p个长度出现,和声未出现时使用下划线替代空白位置,小结结束时未输出完整的和声会被直接截断;更具体地,先在每一个小节前面加上p条下划线,随后截取原来的小节的长度位,得到每一个小节的和声。例如,当p=2时,第一小节变为"_ _ _do−re−re",再截取前8位,得到第一小节的和声 " _ _do−do−",上方样例的和声最终可以唯一地表示为| _ do−do−| _ _re−|
现在,对于给出的字符串和整数p,请你直接输出和声!