c++ - 运行时错误:基数为 0x000000000000 的指针索引表达式溢出到 0xffffffffffffffff (basic_string.h)
问题描述
问题是在字符串数组中找到最大的公共前缀字符串。
示例 1:
输入:["flower","flow","flight"]
输出:“fl”
这是我到目前为止所尝试的。
class Solution {
public:
string longestCommonPrefix(const vector<string>& v) {
if ( v.empty() )
{
return 0;
}
string smin = *min_element(v.begin(), v.end(),
[] (const std::string& s1, const std::string& s2) {
return s1.length() < s2.length(); }
);
string str="";
int i,j;
for(i=0; i<smin.size(); i++){
str+=smin[i];
for(j=0; j<v.size(); j++){
if(v[j].find(str)==string::npos){
str=str.substr(0, str.length() - 1);
return str;
}
}
}
return str;
}
};
预期结果已作为上面的示例给出。
我得到的错误消息是-:
Runtime error: pointer index expression with base 0x000000000000 overflowed to 0xffffffffffffffff
我已经为此研究了类似的答案并尝试实现它们,但错误并没有发生。请有人帮我解决这个问题。
解决方案
向量中有一个空字符串。在某些时候,您计算长度减 1。然后将其用于结束索引 substr。
一般来说,您需要学习使用调试器,它会准确地告诉您错误发生在哪一行以及该行上的变量是什么样的。
推荐阅读
- microsoft-graph-api - 使用 mgt 上的轮询构建本地团队聊天 Get Component- 轮询和节流
- ios - React-Native CLI run-ios 脚本尝试在不存在的模拟器上运行应用程序
- php - PHP:检查来自两个目录的文件(或递归地检查子目录)
- symfony - 避免用户使用 CSRF 编辑 HiddenType 字段的值?
- javascript - 如何从FTP上的文件替换网页上城市的文本,我有所有城市
- python - 在 Python 上进行网页抓取
- karate - 是否有人使用空手道进行 Salesforce API 测试?
- php - 为什么我的 Laravel 策略总是返回 false?
- ubuntu - 为什么使用 podman 构建容器时无法删除目录?
- html - Divs in row - 一个人的高度由内容设置,另一个人设置为匹配