📅  最后修改于: 2023-12-03 15:42:13.334000             🧑  作者: Mango
这是一个关于计算机科学GATE试题模拟。本题属于设置2中的第11题。
给定一个仅包含大写英文字母的字符串,在每个字符前后插入字符'',并将字符串中出现的所有相邻的''替换为'$'。例如,字符串"HELLO"将变成"*H*E*L*L*O*",然后变成"*H$E$L$L$O*"
编写一个函数,接受一个字符串并返回变换后的字符串。
def transform_string(s: str) -> str:
pass
s = "HELLO"
"*H$E$L$L$O*"
本题需要进行字符串操作,经过分析,我们可以先在字符串的首尾插入''来满足每一个字符前后都有''的限制条件。
接下来,需要将所有相邻的'*'替换为'$'。这一步操作可以直接使用Python的字符串替换函数replace()来实现。
下面是对题目的解答代码,附带详细注释:
def transform_string(s: str) -> str:
# 在字符串首尾加上'*',使每个字符前后都有'*'
s = '*' + '*'.join(s) + '*'
# 将相邻的'*'替换为'$'
s = s.replace('*$', '$*').replace('**', '*')
return s
本算法需要进行字符串操作,时间复杂度为O(n),其中n为字符串长度。