Python程序计算介于两者之间的字符!和2##



我有一个问题:您有一个包含!,#的字符串和小字母a-z。你必须逃离后面的每个字符!并且位于2#符号之间。[将奇数#视为(和偶数#视为(]您必须打印出将要转义的字母数。

输入格式

输入将是包含字符串序列的一行

限制

n=len(字符串seq(1<n<1000

输出格式

输出将是单个整数

Sample Input 0
#!a!b#c!d
Sample Output 0
2
Sample Input 1
##bc!a#
Sample Output 1
0

现在,这段代码清除了9个测试用例中的6个,但我不知道如何清除我尝试过的所有测试用例。我怀疑凯撒的测试可能是错误的。有人能帮我告诉我问题是错的、测试用例是错的还是我的代码是错的吗?如果我的代码错了,请帮我纠正。谢谢。

def escape(str1):
counter=0
if(str1.count('!')%2==1):
return '0'
for a,b in enumerate(str1):
if(b=='#'):
if(97<=ord(str1[a+1])<=122):
if(str1.index('#')<a+1<len(str1)-str1[::-1].index('#')):
counter+=1
return counter

str1=输入((打印(转义(str1((

告诉我这段代码是否适用于您的所有案例,这样我就能让我的解决方案变得更好。。

case='#h!a!h#gh#!d##ghj#'
cnt=0
temp=''
flag=False
for c in case:
if c=='#':
if flag:
#print(temp)
tl=temp.split('!')
if len(tl)>1:
#print(tl)
#tl=list(filter(('').__ne__, tl))
#print(tl)
cnt+=len(tl)-1
temp=''
flag=False
else:
flag=True
else:
temp+=c
print(cnt)
def escape(str1):
i=0
counter=0
final_counter=0
condition1=False
while(i!=len(str1)):
if(str1[i]=='#' and condition1==False):
condition1=True
i+=1
elif(str1[i]=='#' and condition1==True):
condition1=False
final_counter+=counter
counter=0
i+=1
elif(condition1==True):
if(str1[i]=='!'):
i+=1
if(97<=ord(str1[i])<=122):
counter+=1
i+=1
else:
i+=1
else:
i+=1
return final_counter

我希望这能有所帮助。我认为问题要求您满足以下条件才能增加计数器:首先,您可以在出现"#"时开始计数,否则无法开始计数。然后当你在"!"后面找到一个字母时(例如!a(你增加你的计数器。最后,如果另一个"#",您将所有内容都累积到您要打印的最终计数器中。

请确认您的所有测试用例是否正确。

相关内容

最新更新