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