3340. 检查平衡字符串
题目描述
给你一个仅由数字 0 - 9 组成的字符串 num
。如果偶数下标处的数字之和等于奇数下标处的数字之和,则认为该数字字符串是一个 平衡字符串。
如果 num
是一个 平衡字符串,则返回 true
;否则,返回 false
。
示例 1:
输入:num = "1234"
输出:false
解释:
- 偶数下标处的数字之和为
1 + 3 = 4
,奇数下标处的数字之和为2 + 4 = 6
。 - 由于 4 不等于 6,
num
不是平衡字符串。
示例 2:
输入:num = "24123"
输出:true
解释:
- 偶数下标处的数字之和为
2 + 1 + 3 = 6
,奇数下标处的数字之和为4 + 2 = 6
。 - 由于两者相等,
num
是平衡字符串。
提示:
2 <= num.length <= 100
num
仅由数字 0 - 9 组成。
解法
方法一:模拟
我们可以用一个长度为 $2$ 的数组 $f$ 来记录偶数下标和奇数下标的数字之和,然后遍历字符串 $\textit{nums}$,根据下标的奇偶性将数字加到对应的位置上,最后判断 $f[0]$ 是否等于 $f[1]$ 即可。
时间复杂度 $O(n)$,其中 $n$ 为字符串 $\textit{nums}$ 的长度。空间复杂度 $O(1)$。
1 2 3 4 5 6 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 |
|
1 2 3 4 5 6 7 |
|