我有一个随机X和Y的列表,例如[XXYXYYX]
我想看到一个X,递增计数,然后跳过接下来的两个数字
例如[XXXY]=1和[XXXYX]=2
for i in range(0,len(arr)):
if arr[i] == 'X':
count+=1
i+=2
return count
我的解决方案不是直接跳过X后面的两个值
示例测试:'XYXXXXXX'
回答错误(得到7个期望值3个)
示例测试:'xxyxxy'
回答错误(预期得到5个2个)
示例测试:'XXXX'
回答错误(得到4个期望值2个)
Tags:
for循环正在更改“i”变量,因此如果向其添加2,则不会发生任何更改。我的意思是‘I’的值改变了,但只有在这一次。紧接着,它被再次设置,并有一个新的值(由for循环设置)
这是我的解决办法
您的
i += 2
没有任何有用的效果,因为for
循环将i
设置为范围内的下一个值您可以自己将范围转换为迭代器,这样您就可以访问它,并在
'X'
之后丢弃接下来的两个索引,从而使其工作:尽管非索引版本更简单、更清晰:
也许你可以使用简单的i+3
相关问题 更多 >
编程相关推荐