博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 387. First Unique Character in a String
阅读量:5291 次
发布时间:2019-06-14

本文共 934 字,大约阅读时间需要 3 分钟。

Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.

Examples:

s = "leetcode"return 0.s = "loveleetcode",return 2.

Note: You may assume the string contain only lowercase letters.

解题思路 1

利用两个 hashtable,就能完成统计字符出现次数和出现的位置。

class Solution {public:    int firstUniqChar(string s) {        unordered_map
crmap; unordered_map
cimap; for (size_t i = 0; i < s.size(); i++) { crmap[s[i]]++; cimap[s[i]] = i; } char c = NULL; string::iterator it = s.begin(); while (it != s.end()) { if (crmap[*it] == 1) { c = *it; break; } it++; } return (c == NULL) ? -1 : cimap[c]; }};

解题思路 2

利用 hashtable 的变形

unordered_map
>

key 表示字符,value 是 key 出现的位置的集合

转载于:https://www.cnblogs.com/fengyubo/p/5794134.html

你可能感兴趣的文章
C#时间截
查看>>
C语言程序设计II—第九周教学
查看>>
C# 获取系统时间及时间格式转换
查看>>
WCF、WebAPI、WCFREST、WebService之间的区别
查看>>
2018-2019-2-20175332-实验四《Android程序设计》实验报告
查看>>
全栈12期的崛起之捡点儿有用的说说
查看>>
基础类型
查看>>
属性动画
查看>>
标识符
查看>>
Swift 常量&变量
查看>>
Sqli labs系列-less-4 这关好坑!!!
查看>>
路由跟踪工具0trace
查看>>
给大家分享一张CSS选择器优选级图谱 !
查看>>
Win7中不能调试windows service
查看>>
T-SQL触发器,限制一次只能删除一条数据
查看>>
boost库使用:vs2013下boost::container::vector编译出错解决
查看>>
通过httplib2 探索的学习的最佳方式
查看>>
理解运算符重载 4
查看>>
快来熟练使用 Mac 编程
查看>>
第二周
查看>>