给定一个加密字符串 S,需要按照以下规则对其进行解密并输出。
解密规则:
字母字符:若当前字符为字母 A-Z
、a-z
,无需解密,原样输出。
括号表达式:若当前字符为 '('
,则其后会跟两个正整数 x
、y
,以及一个右括号 ')'
,其中正整数 x
和 y
之间以逗号分隔。你需要从当前解密串的末尾向前数第 x
个字符开始,复制长度为 y
的字符串并追加到解密结果中。
给定一个加密字符串S,你需要按照以下规则对其解密并输出。解密规则:
1.若当前字符为字母A−Z,a−z,无需解密,原样输出。
2.若当前字符为'(',则其后会跟两个正整数x、y和一个字符')’,正整数x和y之间以逗号为分隔符,你需从当前解密串倒数第x个字符开始复制y个字符作为解密后的信息输出。
需要考虑y大于“剩余可复制字符数"的情况,此时复制需要多次完成先复制全部剩余字符输出,此时解密串的长度已变长,继续1次或者多次复制,直到复制完y个字符。参考样例1和样例2。
约束:
输入共一行,代表加密字符串,包含大小写字母和(x,y)格式子串
输出共一行,表示解密后的字符串,只包含大小写字母
输入
ABCDE(3,2)(2,3)
输出
ABCDECDCDC
说明
ABCDE不需要解密,原样输出。
(3,2)解密,向后退3个字符,
ABCDE
|
复制2个字符,得到ABCDECD,(3,2)解密结束;
(2,3)解密,向后退2个字符,
ABCDECD
|
只有2个字符,先复制2个字符CD,得到ABCDECDCD,
ABCDECDCD
|
继续复制1个字符C,得到ABCDECDCDC。(2,3)解密完毕。
输入
ABCD(3,8)(10,10)mn
输出
ABCDBCDBCDBCCDBCDBCDBCmn
说明
ABCD不需要解密,原样输出,
(3,8)解密,向后退3个字符,到字符B的位置
ABCD
|
先复制3个字符得到ABCDBCD,还剩下5个字符待复制
ABCDBCD
|
再复制3个字符得到ABCDBCDBCD,还剩下2个字符复制
ABCDBCDBCD
|
再复制2个字符得到ABCDBCDBCDBC,还剩下0个字符待复制,(3,8)解密结束
(10,10)解密,向后退10个字符
ABCDBCDBCDBC
|
复制10个字符得到ABCDBCDBCDBCCDBCDBCDBC,(10,10)解密结束
mn不需要解密,原样输出,解密结束,结果为:ABCDBCDBCDBCCDBCDBCDBCmn