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

题目:

题解:

cpp 复制代码
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;
    }
};
相关推荐
进击的小白菜37 分钟前
Java回溯算法解决非递减子序列问题(LeetCode 491)的深度解析
java·算法·leetcode
_F_y1 小时前
list简单模拟实现
c++·list
前进的程序员2 小时前
C++ 在 Windows 和 Linux 平台上的开发差异及常见问题
linux·c++·windows
Swift社区2 小时前
涂色不踩雷:如何优雅解决 LeetCode 栅栏涂色问题
算法·leetcode·职场和发展
冠位观测者2 小时前
【Leetcode 每日一题】2900. 最长相邻不相等子序列 I
数据结构·算法·leetcode
努力写代码的熊大2 小时前
链表的中间结点数据结构oj题(力扣876)
数据结构·leetcode·链表
daiwoliyunshang2 小时前
哈希表实现(1):
数据结构·c++
pystraf2 小时前
模板分享:网络最小费用流
c++·算法·图论·网络流
thisiszdy3 小时前
<C++> MFC自动关闭对话框(MessageBoxTimeout)
c++·mfc
绯樱殇雪3 小时前
编程题 03-树2 List Leaves【PAT】
c++·pat考试