【发布时间】:2021-01-21 18:09:00
【问题描述】:
我在 codewars.com 上做一个练习任务,我已经完成了我的代码并对其进行了测试。它起作用了,所以我试图把它交出来,但后来我遇到了两个我的代码不起作用的情况。我想改正我的错误,但我不明白错误/失败尝试的含义。
这是错误的图像:
这是错误信息:
Sample_Test_Cases
Caught std::exception, what(): basic_string::substr: __pos (which is 18446744073709551615) > this->size() (which is 3)
Random_Test_Cases
Caught std::exception, what(): basic_string::substr: __pos (which is 18446744073709551614) > this->size() (which is 8)
这是我的代码,如果有什么完全错误的话:D
bool solution(std::string const &str, std::string const &ending) {
long long end = ending.size(), size = str.size();
long long dif = size - end;
string endi = str.substr(dif, end);
if(endi != ending) {
return false;
}
else {
return true;
}
}
还有我必须做的任务:
完成解决方案,如果传入的第一个参数(字符串)以第二个参数(也是一个字符串)结尾,则它返回 true。
请帮我找出问题所在,谢谢!
【问题讨论】:
-
如果
ending比str长怎么办? -
仅供参考 - 您无需创建另一个字符串即可查看
str是否以ending结尾。
标签: c++ string algorithm substr function-definition