unordered_map算法

unordered_map<char, char>s

遍历寻找符合键的元素: s.find(键)!=s.end()

mapunordered_map都是C++ STL提供的关联容器,用于存储键-值对。它们之间的区别主要在于底层实现和搜索/插入/删除操作的性能表现:

  1. map是基于红黑树实现的,它会自动按照键的大小进行排序,因此键值对是有序存储的。在map中查找元素的时间复杂度为O(log n)
  2. unordered_map是基于哈希表实现的,它不保证元素插入的顺序,因为元素是根据哈希值存储的。在unordered_map中查找元素的时间复杂度为O(1),但可能会受到哈希冲突的影响。
  3. 可以直接对map的键值进行遍历操作

409.最长回文串

class Solution {
public:
    int longestPalindrome(string s) {
        unordered_map<char,int>count;
        for(char ch:s)
        {
            count[ch]++;
        }
        int sum=0;
        bool sign=false;
        for(int i=0;i<count.size();i++)
        {
            if(count[i]%2==0)
            {
                sum+=count[i];
            }
            else
            {
                sum+=count[i]-1;//减1就能构成回文
                sign=true;
            }
        }
        return sign?sum+1:sum;//存在奇数次字符多加1
    }
};

 205.同构字符串

class Solution {
public:
    bool isIsomorphic(string s, string t) {
        unordered_map<char, char> s2, t2;
        for(int i=0;i<s.size();i++)
        {
            char a=s[i],b=t[i];
            if((s2.find(a)!=s2.end()&&s2[a]!=b)||(t2.find(b)!=t2.end()&&t2[b]!=a)) //查找到键同时不符合已有映射关系
            {
                return false;
            }
            s2[a]=b;
            t2[b]=a;
        }
        return true;
    }
};

 290.单词规律

class Solution {
public:
    bool wordPattern(string pattern, string s) {
        using namespace std;
        // 定义两个映射,一个用于字符到单词,一个用于单词到字符
        unordered_map<char, string> char_to_word;
        unordered_map<string, char> word_to_char;
        vector<string> words;
        istringstream ss(s); // 使用字符串流来分割字符串
        string word;

        // 将字符串 s 按照空格分割成单词
        while (ss >> word) {
            words.push_back(word);
        }

        // 检查单词的数量是否与模式字符的数量一致
        if (words.size() != pattern.size()) {
            return false;
        }

        for (int i = 0; i < pattern.size(); i++) {
            char c = pattern[i];
            string w = words[i];

            // 检查从模式字符到单词的映射是否已经存在且一致
            if ((char_to_word.find(c) != char_to_word.end()&&(char_to_word[c] != w))||((word_to_char.find(w) != word_to_char.end()&&(word_to_char[w] != c)))) {
                return false;
            } 
                char_to_word[c] = w;
                word_to_char[w] = c;
        }
        return true;
    }

}
;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/753758.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python CSSE7030

1 Introduction In this assignment, you will implement a (heavily) simplified version of the video game ”Into The Breach”. In this game players defend a set of civilian buildings from giant monsters. In order to achieve this goal, the player commands a s…

上位机图像处理和嵌入式模块部署(mcu之静态库生成和使用)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 很多同学做了很长时间的mcu和keil开发&#xff0c;都认为keil工程中必须包含所有的源代码&#xff0c;其实这是不对的。如果有一些代码我们不希望别…

游戏AI的创造思路-技术基础-深度学习(7)TF

重头戏TF&#xff0c;汽车人&#xff0c;变形~~~~ 现在广泛应用的GPT中&#xff0c;数据处理的关键点就是Transformer算法&#xff0c;多次多层的映射“变形”造就了其对自然语言处理能力的提升&#xff0c;但本篇介绍的内容中&#xff0c;Transformer算法是用来构建游戏AI的“…

深度学习经典检测方法概述

一、深度学习经典检测方法 two-stage&#xff08;两阶段&#xff09;&#xff1a;Faster-rcnn Mask-Rcnn系列 one-stage&#xff08;单阶段&#xff09;&#xff1a;YOLO系列 1. one-stage 最核心的优势&#xff1a;速度非常快&#xff0c;适合做实时检测任务&#xff01; 但是…

【知识图谱系列】(实例)python操作neo4j构建企业间的业务往来的知识图谱

本章节通过聚焦于"金额"这一核心属性,构建了一幅知识图谱,旨在揭示"销售方"与"购买方"间的商业互动网。在这张图谱中,绿色节点象征着购买方,而红色节点则代表了销售方。这两类节点间的紧密连线,不仅映射了双方在市场活动中的合作桥梁,还特…

8个成功的原型设计案例分享

原型设计在整个产品设计过程中非常的重要&#xff0c;定下了整个产品的基调&#xff0c;想要做好原型设计&#xff0c;需要不断的经验的积累&#xff0c;新手入门最快的方式就是学习一些优秀的原型设计案例&#xff0c;今天就为大家分享一些可以直接使用源文件进行编辑和修改的…

Linux高级编程——线程

pthread 线程 概念 &#xff1a;线程是轻量级进程&#xff0c;一般是一个进程中的多个任务。 进程是系统中最小的资源分配单位. 线程是系统中最小的执行单位。 优点&#xff1a; 比多进程节省资源&#xff0c;可以共享变量 进程会占用&am…

SpringBoot(二)SpringBoot多环境配置

Spring框架常用注解简单介绍 SpringMVC常用注解简单介绍 SpringBoot&#xff08;一&#xff09;创建一个简单的SpringBoot工程 SpringBoot&#xff08;二&#xff09;SpringBoot多环境配置 SpringBoot&#xff08;三&#xff09;SpringBoot整合MyBatis SpringBoot&#xff08;四…

MySQL高级-SQL优化- limit优化(覆盖索引加子查询)

文章目录 0、limit 优化0.1、从表 tb_sku 中按照 id 列进行排序&#xff0c;然后跳过前 9000000 条记录0.2、通过子查询获取按照 id 排序后的第 9000000 条开始的 10 条记录的 id 值&#xff0c;然后在原表中根据这些 id 值获取对应的完整记录 1、上传5个sql文件到 /root2、查看…

AI与学术的交响:ChatGPT辅助下的实验设计新篇章

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 在学术研究中&#xff0c;实验设计是确保研究质量和结果可信度的关键环节。这篇文章我们将为大家介绍如何利用ChatGPT辅助完成学术论文的实验设计&#xff0c;通过提供灵感、优化实验步…

有什么好用的ai自动绘画软件?6个软件帮助你快速进行智能绘画

有什么好用的ai自动绘画软件&#xff1f;6个软件帮助你快速进行智能绘画 寻找好用的AI自动绘画软件可以帮助用户快速进行智能绘画&#xff0c;以下是几款推荐的软件&#xff0c;它们能够提供不同风格和功能的绘画体验&#xff1a; 聪明灵犀&#xff1a;这是一款知名的AI艺术应…

【pytorch10】统计属性

常见统计属性 norm&#xff08;范数&#xff09;mean,sumprodmax&#xff0c;min&#xff0c;argmin&#xff0c;argmaxkthvalue&#xff0c;topk kthvalue求第几个的位置和第几个的值 topk求top几的这样的一个数值 norm范数 这里的norm表达的是范数的意思&#xff0c;norma…

多地高温持续“热力”爆表 约克VRF中央空调带你清凉舒爽一夏

“出门5分钟&#xff0c;流汗2小时”,夏季高温天气&#xff0c;怎一个“热”字了得&#xff1f;6月以来&#xff0c;我国多地迎来高温“炙烤”&#xff0c;全国出现40℃以上高温的范围持续增加&#xff0c;随着中央气象台高温预警持续拉响&#xff0c;人们都很纳闷&#xff1a;…

主流电商平台API接口(天猫获得淘宝商品详情,获得淘宝app商品详情原数据 ,获得淘口令真实url API,按图搜索淘宝商品(拍立淘) API )

主流电商平台商品接口在电商企业中具有重要应用价值。通过商品接口&#xff0c;电商企业可以实现商品同步功能&#xff1a; 商品信息同步&#xff1a;通过接口可以实时同步主流电商平台上的商品信息&#xff0c;包括商品标题、价格、库存、销量等数据&#xff0c;确保企业在自…

[leetcode]search-insert-position 搜索插入位置

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int searchInsert(vector<int>& nums, int target) {int left 0, right nums.size()-1;while(left <right) {int mid left (right-left)/2;if(nums[mid] target){return mid;} else if(nu…

subline设置打开文件重启一个新的窗口

问题 打开文件后&#xff0c;用的是同一个窗口的子tab页面 想要打开一个新的窗口 解决 点解preferences->setting 在右边的配置文件新增一行 “open_files_in_new_window”: “always” 保存 搞定&#xff01;

立创ESP32C3学习笔记

好的设计可以学到很多知识和细节&#xff0c;就如同学会一个数学知识点最好的方法是做典型例题。 乐鑫关于产品的硬件设计都有硬件设计指南&#xff0c;设计板子的时候需要仔细阅读&#xff1a; 原理图设计 - ESP32-C3 - — ESP 硬件设计指南 latest 文档 (espressif.com) 技…

IP地址查询和代理服务器:双重保护隐私

随着网络应用的日益普及&#xff0c;我们的个人信息和数据安全面临前所未有的挑战。在此背景下&#xff0c;IP地址查询和代理服务器成为保护个人隐私和网络安全的两大关键工具。本文将从IP地址查询的原理和应用出发&#xff0c;深入剖析代理服务器在网络隐私保护中的作用&#…

JS(JavaScript)事件处理(事件绑定)趣味案例

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

5. Spring IoCDI ★ ✔

5. Spring IoC&DI 1. IoC & DI ⼊⻔1.1 Spring 是什么&#xff1f;★ &#xff08;Spring 是包含了众多⼯具⽅法的 IoC 容器&#xff09;1.1.1 什么是容器&#xff1f;1.1.2 什么是 IoC&#xff1f;★ &#xff08;IoC: Inversion of Control (控制反转)&#xff09;总…