返回信息流内存越界不是编译没通过,边界条件debug一下
这是一条镜像帖。来源:北邮人论坛 / cpp / #101294同步于 2021/10/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
Re: leetcode 151题求助
guoshuhong
2021/10/14镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
我觉得可能是最后一个单词的结束出了问题,如果去除了两边的空格,最后一次进入外面的while的时候right小于size,然后第二个while会走到right=size,越界了
【 在 huangsiyuan 的大作中提到: 】
:151题,在leetcode上我这样写没通过编译,自己的本地能通过,想问问uu们啥原因,主函数中去空格函数没写出来,已经验证是对的,bug应该是出在那个while的单词反转里面
:[md]
:```
:string reverseWords(string s) {
: deleteSpace(s); //去除了多余空格,已经验证不是这个问题
是会越界面,我下面的if就是判断是否越界,如果越界就翻转left到end
【 在 Jarvistj 的大作中提到: 】
: 你都已经去除空格了,第二个while循环会一直触发right自增然后触发越界吧
是的,我也有考虑这个,然后就加了下面的if判断,过界了就进行else里面的翻转
【 在 bupt011 的大作中提到: 】
: 我觉得可能是最后一个单词的结束出了问题,如果去除了两边的空格,最后一次进入外面的while的时候right小于size,然后第二个while会走到right=size,越界了
while(s[right] != ' '){
right++;
}
找不到空格,right一直++;对于不含空格的字符串 right很容易就越界了啊
你还是没懂,大家说的是你while判断会越界,都走不到下边if好吧。。。
【 在 huangsiyuan 的大作中提到: 】
: 是会越界面,我下面的if就是判断是否越界,如果越界就翻转left到end