中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++刪除重復字符的方法是什么

c++
小億
162
2023-11-07 20:25:04
欄目: 編程語言

在C++中刪除重復字符的一種方法是使用哈希表。可以使用一個數組或者一個標準庫中的unordered_set來實現哈希表。具體步驟如下:

  1. 遍歷字符串的每個字符。
  2. 檢查當前字符是否已經在哈希表中存在。
  3. 如果當前字符不存在于哈希表中,將其加入哈希表,并將其添加到新的字符串中。
  4. 如果當前字符已經存在于哈希表中,說明是重復字符,跳過該字符。
  5. 最終得到的新字符串就是刪除重復字符后的結果。

以下是一個使用unordered_set的示例代碼:

#include <iostream>
#include <unordered_set>
#include <string>

std::string removeDuplicates(const std::string& str) {
    std::string result;
    std::unordered_set<char> uniqueChars;

    for (char c : str) {
        if (uniqueChars.find(c) == uniqueChars.end()) {
            uniqueChars.insert(c);
            result += c;
        }
    }

    return result;
}

int main() {
    std::string input = "abracadabra";
    std::string result = removeDuplicates(input);
    std::cout << result << std::endl;  // 輸出 "abrcd"
    return 0;
}

注意:這種方法會保留第一次出現的字符,刪除其余重復的字符。如果要保留最后一次出現的字符,可以將哈希表的類型改為std::unordered_map<char, int>,將字符映射到它們在字符串中的索引位置。在遍歷字符串時,更新哈希表中字符的索引值。在最后,遍歷哈希表,將索引值最大的字符添加到結果字符串中。

0
三门县| 道孚县| 克拉玛依市| 新干县| 高淳县| 宁陕县| 体育| 湾仔区| 平遥县| 靖宇县| 阿鲁科尔沁旗| 罗甸县| 平江县| 北宁市| 广德县| 兰州市| 江都市| 濉溪县| 海晏县| 墨脱县| 吴旗县| 宁明县| 华宁县| 罗定市| 巴南区| 东平县| 高安市| 土默特右旗| 乌拉特前旗| 家居| 东方市| 普定县| 衡阳县| 黑山县| 镇康县| 项城市| 山西省| 新田县| 长白| 宜丰县| 德格县|