LeetCode 远征日记(4)

检查平衡字符串

📖 方法一

思路

直接暴力求解即可。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string>

class Solution {
public:
    bool isBalanced(string num) {
        int odd = 0;
        int even = 0;
        for (int i = 0, len = num.size(); i < len; i++)
        {
            int trueNum = num[i] - '0';
            if (i % 2 == 0)
            {
                even += trueNum;
            } else
            {
                odd += trueNum;
            }
        }
        if (even == odd)
            return true;
        return false;
    }
};

收获

  1. 在 LeetCode 的代码编辑区中,使用如下的方式不能同时为两个变量赋初值,需要分开赋值。
1
int odd, even = 0; // 此时 odd 的初值不是 0
  1. 注意,获取 string 类型数据长度的方式不是 str.len(),而是 str.size()。
  2. 利用 [] 运算符获取 string 中的单个数据时,得到的数据类型是 char,而不再是 string 了
  3. 在 C++ 中,将 char 类型的字符整数转换为 int 类型整数的方式:
1
2
char a = '2'
int num = a - '0' // num:2,利用了 ASCII 码