gpt4 book ai didi

c++ - CodeEval,第一个非重复字符挑战——需要解释失败原因

转载 作者:行者123 更新时间:2023-11-28 05:53:08 24 4
gpt4 key购买 nike

我用 C++ 编写了一个小程序,它将一个字符串作为输入。然后它将打印字符串中的第一个非重复字符。下面是我的代码。这是 CodeEval.com 上的挑战。问题是,据我所知,代码按预期工作。但是 CodeEval.com 告诉我我的代码不正确。不幸的是,我不允许看到他们正在使用的输入,但在家里使用时,我看不出有什么问题。谁能告诉我我的代码是否有任何不符合提示的地方?

#include <cstdlib>
#include <iostream>
#include <string>
#include <vector>

using namespace std;

int main(int argc, char *argv[])
{
string input = "";
while(getline(cin, input)){
vector<char> inputVector(input.begin(),input.end());
char firstNonRepeatedChar;
for(int i = 0; i < inputVector.size(); i++){
if((inputVector[i] != inputVector[i + 1]) && (inputVector[i] != inputVector[i - 1])){
firstNonRepeatedChar = inputVector[i];
break;
}
}
cout << firstNonRepeatedChar << "\n";
}
//system("PAUSE");
return EXIT_SUCCESS;
}

编辑:如果有人想知道,这是给了我正确答案的代码。 Ben 帮助我意识到我没有根据提示正确回答问题。

#include <cstdlib>
#include <iostream>
#include <string>
#include <vector>

using namespace std;

int findCharInVector(vector<char>& input, char charToFind);

int main(int argc, char *argv[])
{
string input = "";
while(getline(cin, input)){
vector<char> characters(input.begin(),input.end());
char firstNonRepeatedChar;
for(int i = 0; i < characters.size(); i++){
if(!(findCharInVector(characters, characters[i]) > 1)){
firstNonRepeatedChar = characters[i];
break;
}
}
cout << firstNonRepeatedChar << "\n";
}
//system("PAUSE");
return EXIT_SUCCESS;
}

int findCharInVector(vector<char>& input, char charToFind){
int output = 0;
for(int i = 0; i < input.size(); i++){
if(input[i] == charToFind){
output++;
}
}
return output;
}

最佳答案

根据评论中的链接,非重复字符是只在字符串中出现一次的字符。这是给出的示例:

yellow // y
tooth // h

您的代码:

 if((inputVector[i] != inputVector[i + 1]) && (inputVector[i] != inputVector[i - 1])){
firstNonRepeatedChar = inputVector[i];

仅检查字符是否连续重复。如果是你的想法,那么上面的例子tooth,第一个不重复的是t,而不是h作为例子指定。

此外 inputVector[i] != inputVector[i - 1] 将导致 i == 0 的未定义行为。

关于c++ - CodeEval,第一个非重复字符挑战——需要解释失败原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34779286/

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