21xrx.com
2024-09-20 05:50:37 Friday
登录
文章检索 我的文章 写文章
C++如何输出字符串中第一个不重复的字符?
2023-06-29 05:59:03 深夜i     --     --
C++ 字符串 输出 不重复字符

在 C++ 中,输出字符串中第一个不重复的字符通常可以使用哈希表来解决。哈希表是一种高效的数据结构,可用于在常数时间内查找值。在这种情况下,我们可以使用一个哈希表来存储每个字符出现的次数。然后,我们可以迭代字符串,并找到第一个出现次数为 1 的字符。

以下是一个实现示例:


#include <iostream>

#include <unordered_map>

using namespace std;

char firstNonRepChar(string str)

{

  unordered_map<char, int> charCounts;

  for (auto c : str)

  {

    charCounts[c]++;

  }

  for (auto c : str)

  {

    if (charCounts[c] == 1)

    

      return c;

    

  }

  return ' ';

}

int main()

{

  string str = "hello world";

  char firstNonRep = firstNonRepChar(str);

  cout << "The first non-repeated character in '" << str << "' is '" << firstNonRep << "'" << endl;

  return 0;

}

在此示例中,我们首先创建一个 unordered_map 对象 charCounts,用于存储每个字符出现的次数。然后,我们迭代字符串并使用 charCounts 对象增加相应字符的计数器。接下来,我们再次迭代字符串,并找到第一个出现次数为 1 的字符。最后,我们返回这个字符。如果不存在这样的字符,我们将返回空格字符。

在本示例中,字符串 "hello world" 的第一个不重复的字符是 'h'。因此,程序将输出以下内容:


The first non-repeated character in 'hello world' is 'h'

总之,在 C++ 中输出字符串中第一个不重复的字符需要一些额外的步骤。但使用哈希表可以使该过程更加简单和高效。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复