当前位置: 首页 > article >正文

C++ | Leetcode C++题解之第387题字符串中的第一个唯一字符

题目:

题解:

class Solution {
public:
    int firstUniqChar(string s) {
        unordered_map<char, int> position;
        queue<pair<char, int>> q;
        int n = s.size();
        for (int i = 0; i < n; ++i) {
            if (!position.count(s[i])) {
                position[s[i]] = i;
                q.emplace(s[i], i);
            }
            else {
                position[s[i]] = -1;
                while (!q.empty() && position[q.front().first] == -1) {
                    q.pop();
                }
            }
        }
        return q.empty() ? -1 : q.front().second;
    }
};

http://www.kler.cn/news/293815.html

相关文章:

  • 问:你知道IO和NIO有哪些区别不?
  • 基于golang实现简单的文件监控
  • 【Python百日进阶-Web开发-音频】Day705 - 音频加载 librosa.load / librosa.stream
  • 《系统架构设计师教程(第2版)》第17章-通信系统架构设计理论与实践-02-广域网网络架构
  • HTML和HTML5有什么区别
  • 畅捷通如何远程访问
  • 主流的3D模型格式有什么区别?
  • 数据分析有哪些流程?
  • 【iOS】Runtime
  • 以低代码技术加速推动企业数字创新
  • 一款可以替代Notepad++的免费高级文本编辑器
  • 数字人模型像素流送实时渲染网页手机平板用语音交互
  • 363_C++_配合360_负责读取和处理录像数据RecordReader类
  • OrangePi AIpro 香橙派 昇腾 Ascend 开发系列
  • AIOT边缘计算机助力智慧储能,开启能源管理新时代
  • 【秋招笔试】9.06去哪儿秋招改编题(第一套)-三语言题解
  • 修改打包后element-ui的字体文件名;JS文件名;CSS文件名
  • 启动.cmd文件一闪而过,看不到报错信息
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • 策略模式的小记
  • GS-SLAM论文阅读笔记--LoopSplat
  • 智能新纪元:GPT-Next引领的AI革命及其跨领域应用
  • Identifying User Goals from UI Trajectories论文学习
  • SpringBoot整合Minio及阿里云OSS(配置文件无缝切换)
  • MySQL · 性能优化 · 提高查询效率的实用指南(下)
  • 用Python导入CSV和Excel表格数据到Word表格
  • 启动 Spring Boot 项目时指定特定的 application.yml 文件位置
  • 无人机种类详解!!!
  • DPDK基础入门(四):从源码角度解析同步互斥机制
  • 乐凡三防|国产化浪潮下的三防平板