21xrx.com
2025-03-24 22:12:17 Monday
文章检索 我的文章 写文章
C++如何输出字符串中第一个不重复的字符?
2023-06-29 05:59:03 深夜i     95     0
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++ 中输出字符串中第一个不重复的字符需要一些额外的步骤。但使用哈希表可以使该过程更加简单和高效。

  
  

评论区

请求出错了