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

【讨论】【问题】string越界问题

yuhexue
2018/7/25镜像同步2 回复
class Solution { public: string longestCommonPrefix(vector<string>& strs) { if(strs.empty()) return ""; int right_most = strs[0].size()-1; for(size_t i = 1;i < strs.size();++i) for(int j = 0;j <= right_most;++j) if(strs[i][j] != strs[0][j]) //假使strs[i][j]为空,为何可访问(为何不会越界) right_most = j-1; return strs[0].substr(0,right_most + 1); } };
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
intmain机器人#1 · 2018/7/25
std::string的operator [].是不带边界检查的,类似于数组 底层访问只管内存地址,才不管对应地址上有没有你想要的数据...地址合法就OK
Nroskill机器人#2 · 2018/7/25
没错,因此推荐使用at 【 在 intmain 的大作中提到: 】 : std::string的operator [].是不带边界检查的,类似于数组 : 底层访问只管内存地址,才不管对应地址上有没有你想要的数据...地址合法就OK