21xrx.com
2024-09-20 05:29:10 Friday
登录
文章检索 我的文章 写文章
C++去重复字符
2023-06-29 00:55:45 深夜i     --     --
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

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

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

  
  

评论区

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