如何改进我的代码以正确计算唯一行数

How to improve my code to correctly count unique lines?

本文关键字:计算 唯一 何改进 我的 代码      更新时间:2023-10-16

我目前正在尝试编写代码来查找独特的行以及唯一的单词。我在下面为唯一行尝试了代码,但是当涉及到唯一行时,它没有正确计算。我相信它忽略了输入并仍在计算包含字母、单词、句子等的行。所以我需要帮助来弄清楚要添加什么,它将输入(空行)计为行,而不是计算任何相同的额外行。我知道这种情况正在发生,因为我测试了几条不同的生产线。至于独特的单词,我什至不知道如何开始:/

unsigned long countULines(const string& s)
{
   set<string> wl;
   string ulines;
   for(int ul = 0; ul < s.size(); ul++){
      wl.insert(ulines);
   }
   return wl.size();
}

这将适用于您:

#include <iostream>
#include <sstream>
#include <string>
#include <set>
size_t countUniqueLines(const std::string& s)
{
    std::set<std::string> uniqueLines;
    std::istringstream is(s);
    std::string line;
    while (std::getline(is, line)) {
        if (!line.empty() && line[line.size() - 1] == 'r') {       
          line.erase(line.size() -1);
        }
        uniqueLines.insert(line);
    }
    return uniqueLines.size();
}
int main()
{
    const std::string myLines = "fournonenntwonthreenthreenn";
    std::cout << countUniqueLines(myLines) << std::endl;
}