21xrx.com
2024-09-20 00:29:58 Friday
登录
文章检索 我的文章 写文章
C++ 查找第一个只出现一次的字符
2023-07-05 05:39:01 深夜i     --     --
C++ 查找 第一个 只出现一次的字符

C++是一门常用的高级编程语言,广泛应用于软件开发、操作系统等领域。针对常见的字符串操作,C++提供了丰富的函数库,其中包括查找字符串中第一个只出现一次的字符的方法。

在字符串查找的过程中,常用的方法是使用数组或哈希表统计每个字符出现的次数,再遍历一遍字符串,找到第一个出现次数为1的字符即可。

下面是一个简单的C++代码示例,实现查找字符串中第一个只出现一次的字符:


#include <iostream>

#include <unordered_map>

using namespace std;

char firstNonRepeatChar(string s) {

  unordered_map<char, int> charCount; // 建立字符-出现次数的哈希表

  for (char c : s) {

    charCount[c]++; // 统计每个字符出现的次数

  }

  for (char c : s) {

    if (charCount[c] == 1) // 找到第一个出现次数为1的字符

      return c;

    

  }

  return '\0'; // 没有找到符合条件的字符

}

int main() {

  string s = "abcbdbe"; // 待查找的字符串

  char c = firstNonRepeatChar(s); // 查找第一个只出现一次的字符

  if (c != '\0')

    cout << "The first non-repeating character is " << c << endl;

   else

    cout << "No non-repeating character found" << endl;

  

  return 0;

}

上述代码定义了一个函数`firstNonRepeatChar`,输入一个字符串,输出其中的第一个只出现一次的字符。函数内部使用了C++11引入的哈希表(unordered_map)来统计每个字符出现的次数,然后再遍历一遍字符串找到符合条件的字符。如果没有找到符合条件的字符,则返回空字符'\0'。

如上述代码所示,使用C++查找第一个只出现一次的字符非常简单,只需要使用哈希表或数组进行字符频率统计和遍历即可。这种方法的时间复杂度是O(n),其中n是字符串的长度,空间复杂度也是O(n)。

  
  

评论区

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