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

LeetCode - 387. 字符串中的第一个唯一字符

题目

387. 字符串中的第一个唯一字符 - 力扣(LeetCode)

思路

用哈希表统计每个字符出现的次数

  • 创建一个 unordered_map<char, int>,遍历字符串,把每个字符出现的次数存进去。

再遍历字符串,找到第一个只出现一次的字符

  • 再次遍历字符串,查哈希表,如果某个字符的次数为1,返回它的下标。

如果没有,返回-1

读者可能出现的错误写法 

class Solution {
public:int firstUniqChar(string s) {vector<char,int> result;for(char e : s){result[e]++;}for(int i = 0;i<result.size();i++){if(result[i] == 1){return i;}}return -1;}
};

1. vector<char, int> result; 语法错误

  • 解释:

vector 是顺序容器,只能有一个类型参数,比如 vector<int> 或 vector<char>,不能像 map 那样有两个类型参数。

  • 正确用法:

如果你想统计每个字符出现的次数,应该用 unordered_map<char, int> 或者用数组 int result[26](只针对小写字母)。

2. result[e]++ 逻辑错误

  • 解释:

vector 不能用字符 e 作为下标,只有数组或 map 才能这样用。

并且 vector 的下标必须是整数,且不能自动扩容到字符的ASCII值。

  • 正确用法:
  • 如果用数组:result[e - 'a']++,前提是 result 长度为26。
  • 如果用 unordered_map:result[e]++。

3. 第二个循环遍历方式错误

  • 解释:

你写的是 for(int i = 0; i < result.size(); i++),但 result.size() 不是字符串长度,而是容器长度。

你应该遍历字符串 s,判断每个字符出现的次数是否为1。

  • 正确用法:

for(int i = 0; i < s.size(); i++) { if (result[s[i] - 'a'] == 1) return i; }

正确写法

class Solution {
public:int firstUniqChar(string s) {unordered_map<char,int> result;for(char e : s){result[e]++;}for(int i = 0;i<s.size();i++){if(result[s[i]] == 1){return i;}}return -1;}
};

相关文章:

  • 商城系统微服务化改造:三大难点与实战解决方案
  • 【工具教程】批量PDF识别提取区域的内容重命名,将PDF指定区域位置的内容提取出来改名的注意事项
  • 动态规划: 背包DP大合集
  • 算法第15天:继续二叉树|前序递归+回溯与前序递归的场景总结、最大二叉树、合并二叉树、二叉搜索树中的搜索、验证二叉搜索树
  • 【Linux网络编程】基于udp套接字实现的网络通信
  • WebView工作原理全解析:如何实现混合开发的无缝衔接
  • 69、JS中如何调用上位机接口
  • 深入讲解一下 Nomic AI 的 GPT4All 这个项目
  • 局域网内电脑与安卓设备低延迟同屏技术【100ms - 200ms】
  • 开疆智能ModbusTCP转Devicenet网关连接三菱PLC与ABB机器人配置案例
  • 解决U盘安装Win11无法命令行跳过联网激活的问题
  • Python内存互斥与共享深度探索:从GIL到分布式内存的实战之旅
  • java发送excel附件的邮件
  • 低成本同屏方案:电脑 + 路由器实现 50 台安卓平板实时同屏
  • 电脑在使用过程中频繁死机怎么办
  • 组合模式深度解析:Java设计模式实战指南与树形结构处理架构设计
  • React Native 构建与打包发布(iOS + Android)
  • 电脑虚拟网卡安装(添加以太网2)
  • 将包含父子关系的扁平列表 List<Demo> 转换成树形结构的 List<DemoVO>,每个节点包含自己的子节点列表
  • Python 轻量化环境管理利器 UV 入门与 Windows 下安装实战
  • 还有什么类似建设通的网站/天津网络广告公司
  • 建设银行网银盾连接不上网站/短网址在线生成
  • 临淄区住房和城乡建设局网站/友链交易交易平台
  • 教育培训机构网站建设/今天重要新闻
  • jsp网站开发四 酷 全书源码/厦门seo管理
  • 国外域名注册做违法网站/搜索引擎营销的简称是