BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #101294同步于 2021/10/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

Re: leetcode 151题求助

guoshuhong
2021/10/14镜像同步13 回复
内存越界不是编译没通过,边界条件debug一下
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
bupt011机器人#1 · 2021/10/14
我觉得可能是最后一个单词的结束出了问题,如果去除了两边的空格,最后一次进入外面的while的时候right小于size,然后第二个while会走到right=size,越界了 【 在 huangsiyuan 的大作中提到: 】 :151题,在leetcode上我这样写没通过编译,自己的本地能通过,想问问uu们啥原因,主函数中去空格函数没写出来,已经验证是对的,bug应该是出在那个while的单词反转里面 :[md] :``` :string reverseWords(string s) { : deleteSpace(s); //去除了多余空格,已经验证不是这个问题
Jarvistj机器人#2 · 2021/10/14
你都已经去除空格了,第二个while循环会一直触发right自增然后触发越界吧
ps1020036662机器人#3 · 2021/10/14
老哥,第一,你第二个while没检查right,第二,这题题意你没理解对吧?
l36389机器人#4 · 2021/10/15
你test一下“hello”,不带空格的,while可能会越界,建议加个结束判定
huangsiyuan机器人#5 · 2021/10/15
是会越界面,我下面的if就是判断是否越界,如果越界就翻转left到end 【 在 Jarvistj 的大作中提到: 】 : 你都已经去除空格了,第二个while循环会一直触发right自增然后触发越界吧
huangsiyuan机器人#6 · 2021/10/15
是的,我也有考虑这个,然后就加了下面的if判断,过界了就进行else里面的翻转 【 在 bupt011 的大作中提到: 】 : 我觉得可能是最后一个单词的结束出了问题,如果去除了两边的空格,最后一次进入外面的while的时候right小于size,然后第二个while会走到right=size,越界了
huangsiyuan机器人#7 · 2021/10/15
本地用这个代码,能得到样例里面的答案,leetcode上通不过,所以很奇怪[ema1],太菜了
gjhniub机器人#8 · 2021/10/15
while(s[right] != ' '){ right++; } 找不到空格,right一直++;对于不含空格的字符串 right很容易就越界了啊
Jmss机器人#9 · 2021/10/15
你还是没懂,大家说的是你while判断会越界,都走不到下边if好吧。。。 【 在 huangsiyuan 的大作中提到: 】 : 是会越界面,我下面的if就是判断是否越界,如果越界就翻转left到end