21xrx.com
2025-03-24 18:19:52 Monday
文章检索 我的文章 写文章
C++去重复字符
2023-06-29 00:55:45 深夜i     17     0
C++ 去重复字符 字符串操作 指针 哈希表

在C++编程中,我们经常需要去除字符串中的重复字符。这在字符串处理中非常常见,例如在爬取网页数据时,经常需要去除重复的URL链接。下面介绍一种简单易懂的C++方法。

首先,我们需要定义一个去重复字符的函数,函数的输入参数是字符串变量,函数的返回值是一个新的字符串变量。函数的定义如下:

string removeDuplicateChars(string str) {
  string newStr = "";
  for (int i = 0; i < str.length(); i++) {
    bool isDuplicate = false;
    for (int j = 0; j < newStr.length(); j++) {
      if (str[i] == newStr[j])
        isDuplicate = true;
        break;
      
    }
    if (!isDuplicate) {
      newStr += str[i];
    }
  }
  return newStr;
}

这个函数使用了两个嵌套的循环,其中第一个循环遍历输入的字符串变量,第二个循环遍历新字符串变量。新字符串变量初始为空,接下来将输入字符串中的每个字符与新字符串中的字符进行比对,如果相同,则标记为重复字符,如果不同,则将其加入新字符串中。

下面给出一个示例:

#include <iostream>
#include <string>
using namespace std;
string removeDuplicateChars(string str) {
  string newStr = "";
  for (int i = 0; i < str.length(); i++) {
    bool isDuplicate = false;
    for (int j = 0; j < newStr.length(); j++) {
      if (str[i] == newStr[j])
        isDuplicate = true;
        break;
      
    }
    if (!isDuplicate) {
      newStr += str[i];
    }
  }
  return newStr;
}
int main() {
  string str = "hello world";
  string newStr = removeDuplicateChars(str);
  cout << newStr << endl;
  return 0;
}

输出结果为:

helo wrd

可以看到,函数成功地去除了字符串中的重复字符,只留下了不同的字符。

当然,这种方法也有它的缺点,例如在处理大量数据时,时间复杂度会很高,导致程序运行速度变慢。因此,在实际应用中,我们需要根据具体情况选择不同的算法进行字符串去重,以达到更高的效率。

  
  

评论区