2025-05-27:检查平衡字符串 用go语言,给定一个只包含数字字符

360影视 日韩动漫 2025-05-27 09:09 2

摘要:2025-05-27:检查平衡字符串。用go语言,给定一个只包含数字字符(0-9)的字符串 num,如果位于偶数索引位置上的数字之和等于位于奇数索引位置上的数字之和,则称该字符串为“平衡字符串”。

2025-05-27:检查平衡字符串。用go语言,给定一个只包含数字字符(0-9)的字符串 num,如果位于偶数索引位置上的数字之和等于位于奇数索引位置上的数字之和,则称该字符串为“平衡字符串”。

请判断输入的字符串是否满足这个条件,满足时返回 true,否则返回 false。

2

num 仅由数字 0 - 9 组成。

输入:num = "24123"。

输出:true。

解释:

偶数下标处的数字之和为 2 + 1 + 3 = 6,奇数下标处的数字之和为 4 + 2 = 6。

由于两者相等,num 是平衡字符串。

题目来自力扣3340。

1. 初始化变量:• 定义一个整数变量 diff 用于存储偶数索引和奇数索引数字之和的差值,初始值为 0。• 定义一个整数变量 sign 用于交替表示当前数字是加到 diff 还是从 diff 中减去,初始值为 1(表示加到 diff)。2. 遍历字符串:• 对字符串 num 中的每一个字符 c 进行遍历:• 将字符 c 转换为对应的数字 d(通过 c - '0' 实现)。• 将 d 乘以 sign 后加到 diff 中。• 将 sign 的值取反(即 sign = -sign),这样下一次循环时会从 diff 中减去 d(如果上一次是加的话)。3. 判断平衡条件:• 遍历完成后,检查 diff 的值是否为 0:• 如果 diff == 0,说明偶数索引和奇数索引的数字之和相等,返回 true。• 否则,返回 false。package mainimport ( "fmt")func isBalanced(num string)bool { diff := 0 sign := 1 for _, c := range num { d := int(c - '0') diff += d * sign sign = -sign } return diff == 0}func main { num := "24123" result := isBalanced(num) fmt.Println(result)}

Rust完整代码如下:

fn is_balanced(num: &str) -> bool {let mut diff = 0;let mut sign = 1;for c in num.chars {let d = c.to_digit(10).unwrap as i32;diff += d * sign;sign = -sign;}diff == 0}fn main {let num = "24123";let result = is_balanced(num);println!("{}", result);}

我们相信 Go 语言和算法为普通开发者提供了强有力的“面试利器”,并致力于分享全面的编程知识。在这里,您可以找到最新的 Go 语言教程、算法解析、提升面试竞争力的秘籍以及行业动态。

·

来源:花儿教育

相关推荐