我现在正在解决Leetcode OJ的问题,ZigZag Conversion。以下代码是我的答案:
class Solution {
public:
string convert(string s, int nRows) {
int n = (int)s.size(), block_size = (nRows - 1);
if (n <= nRows || nRows == 1)
return s;
string re = "";
int len = nRows - 2 + nRows;
for (int left = len, right = 0, i = 0; i < nRows; ++i) {
bool is_left = false;
char current = 0;
int offset = 0;
while (i + offset <= n) {
if (!is_left) {
if (left != 0) {
current = s[i + offset];
re.push_back(current);
}
offset += left;
is_left = true;
} else {
if (right != 0) {
current = s[i + offset];
re.push_back(current);
}
offset += right;
is_left = false;
}
}
left -= 2;
right = len - left;
}
return re;
}
};
提交后,OJ回答:提交结果:错误答案。但是,它也说我的代码&#39;输出是&#34; ACB&#34;并且预期答案与&#34; ACB&#34;完全相同。
当输出和预期相同时,为什么答案是错误的。 那么,Leetcode的c ++的编译器版本是什么?有时,我的g ++编译器的输出与leetcode的输出不同。
答案 0 :(得分:0)
来自Leetcode论坛:
Language Version Notes
C++ g++ 6.3