String 字符串操作重叠 def代码帮助(st): i=0 noot=“” 而我(在字符串的开头和结尾都添加两个*),而不是***$***$***$***/code>(忽略前两个*).
基本上,每次用户输入包含“$”的字符串时,代码将只返回“$”和“$”前后有两个星号的“$”。在大多数测试用例中,代码运行良好,但是一旦输入了一个包含多个“$”的字符串,即String 字符串操作重叠 def代码帮助(st): i=0 noot=“” 而我(在字符串的开头和结尾都添加两个*),而不是***$***$***$***/code>(忽略前两个*).,string,python-3.x,overlap,String,Python 3.x,Overlap,基本上,每次用户输入包含“$”的字符串时,代码将只返回“$”和“$”前后有两个星号的“$”。在大多数测试用例中,代码运行良好,但是一旦输入了一个包含多个“$”的字符串,即Codehelp(“r$t$”),它就会输出***$***$***$***$***$***/code>(在字符串的开头和结尾都添加两个*),而不是***$***$***$***/code>(忽略前两个*).就像你说的,我得到这个输出:***$***$***$***$***$***。 我可以肯定地说,这是有意义的,因为它只检查$的
Codehelp(“r$t$”)
,它就会输出***$***$***$***$***$***/code>(在字符串的开头和结尾都添加两个*),而不是***$***$***$***/code>(忽略前两个*).就像你说的,我得到这个输出:***$***$***$***$***$***
。
我可以肯定地说,这是有意义的,因为它只检查$
的当前实例,并在前后添加**
。
如果您想让它更“智能”,您可能需要实现一些可以向前看的东西,看看在当前的$
之后是否还有另一个$
但是,要获得***$
(不确定这是否是您所期望的,请更正我),您需要查看下一个索引,以查看是否还有另一个$
(显然还需要考虑字符串长度边界检查),并且不要在第二个$
之后添加额外的***
def Codehelp(st):
i = 0
noot = ""
while i < len(st):
if st[i] == '$':
noot += "**" + st[i] + "**"
i += 1
if '$' in noot:
return noot
else:
return "**"
return