84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
欢迎选择我的课程,让我们一起见证您的进步~~
可以把这段代码分成两部分看。正常情况下,代码把下面的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的位