gpt4 book ai didi

c++ - 查找数组程序错误中的回文串数

转载 作者:行者123 更新时间:2023-11-30 03:15:20 25 4
gpt4 key购买 nike

我正在编写代码来查找给定字符串数组中回文字符串的数量。我认为我的想法是正确的,但是当我运行它时出现了奇怪的错误。我到底做错了什么?

int countPalindromes(string s) {
int size = s.size();
int counter = 0;
string forwardSum = "";
string backwardSum = "";

for(int i = 0; i < size; i++){
for(int j = i; j < size; i++){
forwardSum.push_back(s[j]);
backwardSum.push_back(s[(n - 1)-j]);

if(forwardSum == backwardSum){
counter++;
}
}
}
return counter;
}

最佳答案

string forwardSum[] = {};

这是一个零大小的数组(我认为这是不合法的,但我们会让它通过)

forwardSum[i] = forwardSum[i] + s[j];

这是试图访问大小为零的数组的第 个元素。

这很糟糕。

我并没有真正遵循你的代码(现在是深夜),但我认为你可能希望 forwardSumbackwardSum 是字符串而不是字符串数组。您可能想使用 push_backs 中的字符添加到这些字符串中。即

string forwardSum;
...
forwardSum.push_back(s[j]); // add s[j] to forwardSum

但如果您确实希望 forwardSum 成为数组,那么明智的做法是改用 vector 。

vector<string> forwardSum(size); // a vector of strings with the given size

现在至少应该不会与您的其余代码崩溃。

关于c++ - 查找数组程序错误中的回文串数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57118149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com