84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
欢迎选择我的课程,让我们一起见证您的进步~~
可以把这段代码分成两部分看。正常情况下,代码把下面的for循环执行完就结束了:
for (int i = 0; i < s_num.size(); ++i) { tmp_res += s_num[i]; }
例如,按照cmp排序[1, 20, 23, 4, 8],得到[8, 4, 23, 20, 1]。用一个for循环把它们连接成“8423201”就是最终答案。但是,总有特殊情况出现。如果数组里面全是0呢?例如,[0, 0, 0, 0]。这时就要对tmp_res进行处理:遍历tmp_res,有三种情况:
如果当前字符不是'0',就把当前字符存储到res;
如果当前字符是'0',但是tmp_res里面存在不是'0'的字符,同样把当前字符存储到res;
如果当前字符是'0',而且当前字符之前的所有字符都是'0',就不做处理。遍历结束后,如果发现flag为false,说明数组里全是0,所以往res里保存一个'0'即可。
这部分的作用是.. 如果所有位都是0, 比如输入是[0,0,0,0], 让这个函数返回0而不是0000
flag表示tmp_res[i]左边是否有非0的位
flag
可以把这段代码分成两部分看。正常情况下,代码把下面的for循环执行完就结束了:
例如,按照cmp排序[1, 20, 23, 4, 8],得到[8, 4, 23, 20, 1]。用一个for循环把它们连接成“8423201”就是最终答案。
但是,总有特殊情况出现。如果数组里面全是0呢?例如,[0, 0, 0, 0]。这时就要对tmp_res进行处理:遍历tmp_res,有三种情况:
如果当前字符不是'0',就把当前字符存储到res;
如果当前字符是'0',但是tmp_res里面存在不是'0'的字符,同样把当前字符存储到res;
如果当前字符是'0',而且当前字符之前的所有字符都是'0',就不做处理。
遍历结束后,如果发现flag为false,说明数组里全是0,所以往res里保存一个'0'即可。
这部分的作用是.. 如果所有位都是0, 比如输入是[0,0,0,0], 让这个函数返回0而不是0000
flag
表示tmp_res[i]左边是否有非0的位