Leetcode3340:检查平衡字符串
题目描述:
给你一个仅由数字 0 - 9 组成的字符串 num
。如果偶数下标处的数字之和等于奇数下标处的数字之和,则认为该数字字符串是一个 平衡字符串。
如果 num
是一个 平衡字符串,则返回 true
;否则,返回 false
。
代码思路:
- 初始化变量:
n
:字符串num
的长度。num1
和num2
:分别用于存储偶数索引和奇数索引上数字的和,初始值都为 0。
- 遍历字符串:
- 使用一个
for
循环遍历字符串num
的每个字符。 - 在每次迭代中,通过
i % 2
判断当前索引i
是偶数还是奇数。- 如果
i % 2 == 0
,说明当前索引是偶数,将当前字符(转换为整数)加到num1
上。 - 如果
i % 2 != 0
(即i
是奇数),将当前字符(转换为整数)加到num2
上。
- 如果
- 使用一个
- 比较和返回结果:
- 在遍历完所有字符后,比较
num1
和num2
的值。 - 如果它们相等,说明偶数索引和奇数索引上的数字之和相等,返回
True
,表示字符串是平衡的。 - 如果它们不相等,返回
False
,表示字符串不是平衡的。
- 在遍历完所有字符后,比较
代码实现:
class Solution:
def isBalanced(self, num: str) -> bool:
n = len(num)
num1 = num2 = 0
for i in range(n):
if i % 2 == 0:
num1 += int(num[i])
else:
num2 += int(num[i])
if num1 == num2:
return True
else:
return False