请教大佬一个 leetcode 上 c++解答的问题

2022-07-12 10:39:43 +08:00
 yaron

输入:"L__R__R", "L______RR" 输出:false 但在本地调试,输出是 true ,是代码哪里出错了吗?

bool canChange(string start, string target) {
        //长度一定要相同
        if (start.size() != target.size())
            return false;

        int num = start.size();
        int i, j = 0;
        while (i < num && j < num)
        {
            while (i < num && start[i] == '_')
                i++;
            while (j < num && target[j] == '_')
                j++;

            // L 和 R 的排序一定要相同
            if (start[i] != target[j])
                return false;
            // R 只能往右移,所以下标一定要小,才能往右移( i + x = j )
            if (start[i] == 'R' && i > j)
                return false;
            // L 只能往左移,所以下标一定要大,才能往左移( i - x = j )
            if (start[i] == 'L' && i < j)
                return false;

            i++;
            j++;
        }

        while (i < num)
        {
            if (start[i++] != '_')
                return false;
        }
        while (j < num)
        {
            if (target[j++] != '_')
                return false;
        }
        return true;
    }
987 次点击
所在节点    问与答
5 条回复
neteroster
2022-07-12 10:54:35 +08:00
int i, j = 0;
jmc891205
2022-07-12 11:04:00 +08:00
好像 debug 的时候未初始化的变量会置零
yaron
2022-07-12 11:05:41 +08:00
@jmc891205 感谢
anonymousar
2022-07-12 11:26:57 +08:00
熟悉的周赛
lixiekun
2022-07-12 14:02:44 +08:00
上周天周赛第三题,卡了我好久

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865597

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX