python - 如何在 for 循环中将 i 增加 3
问题描述
我有一个随机 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 之后直接跳过接下来的两个值。
示例测试:“XYXXXXXXYX”。错误答案(得到 7 预期 3)
示例测试:'XXYXXXY' 错误答案(预期为 5 2)
示例测试:“XXXX”错误答案(预期为 4 为 2)
解决方案
'i' 变量正在被 for 循环更改,因此如果向其添加 2,则不会发生任何变化。我的意思是“i”的值发生了变化,但只是在这个时候。在那之后,它被再次设置并具有一个新值(由 for 循环设置)。
有我的解决方案。
s = 'XYXXXXXYX'
count = 0
i = 0
while i < len(s):
if s[i] == 'X':
count += 1
i += 3
else:
i += 1
print(count) # 3
#With the for loop
count = 0
skipped = 0
is_skipping = False
for i, letter in enumerate(s):
if not is_skipping:
if letter == 'X':
count += 1
is_skipping = True
else:
skipped += 1
if skipped > 2:
is_skipping = False
skipped = 0
print(count) # 3
推荐阅读
- android - 如果在 relativeLayout 中滚动视图,则 ScrollTo 不起作用
- json - 如何在 React JS 中创建字母表和输入搜索
- r - 从页面中抓取所有详细信息
- facebook - 无法从 Instagram 图形 API 媒体节点获取所有字段
- javascript - 当我尝试添加 XSRF 令牌时,Angular 正在删除我的 cookie
- html - 一些样式在最小化的 CSS 中没有考虑到
- html - 不会溢出父级的响应式方形伪元素
- c# - .NET Core 2.1 带有外键的模型应该如何正确完成?
- aframe - A-frame:带有介绍和“开始”按钮的场景
- c# - Entity Framework Core 2.1 - 拥有类型和嵌套值对象