C++11 句子中第一个重复的单词

C++11 句子中第一个重复的单词,c++11,C++11,我不知道臭虫在哪里。我试图找到字符串中的第一个重复单词,其中分隔符是空格、制表符、逗号、冒号、分号、破折号和句点 有人看到我确定的明显错误了吗 std::string repeat(std::string str) { std::set<std::string> seen; str.insert(str.end(), ' '); std::string tmp; for (auto const& s : str) { if (s != ' '&am

我不知道臭虫在哪里。我试图找到字符串中的第一个重复单词,其中分隔符是空格、制表符、逗号、冒号、分号、破折号和句点

有人看到我确定的明显错误了吗

std::string repeat(std::string str) {
  std::set<std::string> seen;

  str.insert(str.end(), ' ');

  std::string tmp;
  for (auto const& s : str) {
    if (s != ' '&&
        s != '\t'&&
        s != '.'&&
        s != ','&&
        s !=':'&&
        s != ';'&&
        s != '-')
      tmp += s;
    else {
      if (seen.find(tmp) != seen.end())
        return tmp;
      else {
        seen.insert(tmp);
        tmp.clear();
      }
    }
  }

  return "no repeats";
}
std::string repeat(std::string str){
std::集看见;
str.insert(str.end(),“”);
std::字符串tmp;
适用于(自动常数&s:str){
如果&&
s!='\t'&&
s!=''&&
s!=','&&
s!=':'&&
s!=';'&&
s!='-')
tmp+=s;
否则{
if(seen.find(tmp)!=seen.end()
返回tmp;
否则{
见。插入(tmp);
tmp.clear();
}
}
}
返回“无重复”;
}

您在此处编写的代码按照

你的问题在别处。也许在调试器中检查输入字符串,看看传递了什么

测试程序(从链接):

#包括
#包括
#包括
使用名称空间std;
std::string repeat(std::string str){
std::集看见;
str.insert(str.end(),“”);
std::字符串tmp;
适用于(自动常数&s:str){
如果&&
s!='\t'&&
s!=''&&
s!=','&&
s!=':'&&
s!=';'&&
s!='-')
tmp+=s;
否则{
if(seen.find(tmp)!=seen.end()
返回tmp;
否则{
见。插入(tmp);
tmp.clear();
}
}
}
返回“无重复”;
}
int main(){

std::cout您在这里编写的代码按照

你的问题在别处。也许可以在调试器中检查输入字符串,看看传递了什么

测试程序(从链接):

#包括
#包括
#包括
使用名称空间std;
std::string repeat(std::string str){
std::集看见;
str.insert(str.end(),“”);
std::字符串tmp;
适用于(自动常数&s:str){
如果&&
s!='\t'&&
s!=''&&
s!=','&&
s!=':'&&
s!=';'&&
s!='-')
tmp+=s;
否则{
if(seen.find(tmp)!=seen.end()
返回tmp;
否则{
见。插入(tmp);
tmp.clear();
}
}
}
返回“无重复”;
}
int main(){

std::cout@KABoissonneault在未知测试用例上失败。@KABoissonneault代码检查用于工作代码only@learning你说的是那些在线代码竞赛吗?你的代码在一堆测试中运行,但你不知道是哪一个?那里不是有一个代码评审平台吗?@syb0rg对,我不知怎么错过了其中的一部分他们说“我不知道臭虫在哪里”.我想问一个问题,并假设他们只是要求进行一般性审查。但仍然含糊不清question@KABoissonneault是的,但是审查网站已经死了。我希望有人能看到这个问题。@KABoissonneault它在一个未知的测试用例上失败。@KABoissonneault Code review是用于工作代码的only@learning你是说tho吗se在线代码竞赛,你的代码在一堆测试中运行,但你不知道是哪一个?那里没有代码评审平台吗?@syb0rg对,我不知怎么错过了他们说的“我不确定bug在哪里”的部分.我想问一个问题,并假设他们只是要求进行一般性审查。但仍然含糊不清question@KABoissonneault是的,但是评论网站已经死了。我希望有人能看到这个问题。
#include <iostream>
#include <string>
#include <set>

using namespace std;

std::string repeat(std::string str) {
  std::set<std::string> seen;

  str.insert(str.end(), ' ');

  std::string tmp;
  for (auto const& s : str) {
    if (s != ' '&&
        s != '\t'&&
        s != '.'&&
        s != ','&&
        s !=':'&&
        s != ';'&&
        s != '-')
      tmp += s;
    else {
      if (seen.find(tmp) != seen.end())
        return tmp;
      else {
        seen.insert(tmp);
        tmp.clear();
      }
    }
  }

  return "no repeats";
}

int main() {
    std::cout << repeat("cat dog cat man"); // prints "cat"
    return 0;
}