comments | difficulty | edit_url | rating | source | tags | |
---|---|---|---|---|---|---|
true |
简单 |
1190 |
第 422 场周赛 Q1 |
|
给你一个仅由数字 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 组成。
我们可以用一个长度为
时间复杂度
class Solution:
def isBalanced(self, num: str) -> bool:
f = [0, 0]
for i, x in enumerate(map(int, num)):
f[i & 1] += x
return f[0] == f[1]
class Solution {
public boolean isBalanced(String num) {
int[] f = new int[2];
for (int i = 0; i < num.length(); ++i) {
f[i & 1] += num.charAt(i) - '0';
}
return f[0] == f[1];
}
}
class Solution {
public:
bool isBalanced(string num) {
int f[2]{};
for (int i = 0; i < num.size(); ++i) {
f[i & 1] += num[i] - '0';
}
return f[0] == f[1];
}
};
func isBalanced(num string) bool {
f := [2]int{}
for i, c := range num {
f[i&1] += int(c - '0')
}
return f[0] == f[1]
}
function isBalanced(num: string): boolean {
const f = [0, 0];
for (let i = 0; i < num.length; ++i) {
f[i & 1] += +num[i];
}
return f[0] === f[1];
}