這個問題在這里已經有了答案: 陣列索引越界行為 (10 個答案) 22 分鐘前關閉。
這是我一直在為這個 codewars 問題研究的解決方案:https ://www.codewars.com/kata/56a5d994ac971f1ac500003e/cpp
我希望輸出是"abigailtheta". 我在 vscode 上得到了正確的輸出,當我從終端編譯代碼時也得到了正確的輸出,但是 codewars 站點顯示輸出"abigail告訴我我的輸出中有我沒有看到的空白尾之前(終端和 vscode 的輸出沒有字串格式)。知道最后那個空白是從哪里來的嗎?
#include <iostream>
#include <string>
#include <vector>
#include <numeric>
class LongestConsec
{
public:
static std::string longestConsec(const std::vector<std::string> &strarr, int k)
{
std::string concChars{};
std::string maxChars{};
for (int i{}; i < strarr.size(); i)
{
concChars = strarr[i];
for (int y{i 1}; y < (i k); y)
{
concChars = strarr[y];
}
maxChars = (maxChars.length() < concChars.length()) ? concChars : maxChars;
}
return maxChars;
}
};
int main()
{
LongestConsec a;
std::vector<std::string> v{"zone", "abigail", "theta", "form", "libe", "zas", "theta", "abigail"};
std::cout << a.longestConsec(v, 2) << '\n';
return 0;
}
uj5u.com熱心網友回復:
我認為你的問題來自這里。
for (int y{i 1}; y < (i k); y)
{
concChars = strarr[y];
}
如果 會i k >= strarr.size()怎樣?什么strarr[y]時候y大于strarr.len()-1?它可以是空格,或者一些陌生的字符,或者更好的是,它會使你的程式崩潰。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/537128.html
標籤:C
上一篇:當我只有一個包含父類的串列時,對不同的子類使用函式多載
下一篇:程式直到結束才執行for回圈
