LeetCode_387. First Unique Character in a String
来源:互联网 发布:站长查询SEO是什么意思 编辑:程序博客网 时间:2024/06/05 17:53
387. First Unique Character in a String
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。
解题思路:
有了前几题的基础,看到这题就很容易想到用哈希表unordered_map先统计各元素数量,再找出数量为1的第一个元素位置。
C++:
class Solution {public: int firstUniqChar(string s) { unordered_map<char, int> map; for (int i=0; i<s.size(); i++) { ++map[s[i]]; } for (int i=0; i<s.size(); i++) { if (map[s[i]]==1) return i; } return -1; }};
但是,这种方法需要两次遍历,当字符串极其长的时候不适用,且看top solution。
TOP SOLUTION:
统计字符数量的同时也保存索引号,然后遍历哈希表。
class Solution {public: int firstUniqChar(string s) { unordered_map<char, pair<int, int>> m; int idx = s.size(); for (int i=0; i<s.size(); i++) { m[s[i]].first++; m[s[i]].second = i; } for (auto &p:m) { if (p.second.first==1) idx = min(idx, p.second.second); } return idx==s.size()?-1:idx; }};
0 0
- leetcode_387 First Unique Character in a String
- LeetCode_387. First Unique Character in a String
- leetcode_387. First Unique Character in a String 找第一个非重复的字符下标,python字典的应用
- first unique character in a string
- 152.First Unique Character in a String
- [Leetcode]First Unique Character in a String
- 387. First Unique Character in a String
- First Unique Character in a String
- LeetCode: First Unique Character in a String
- First Unique Character in a String
- 387.First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- 387. First Unique Character in a String
- LeetCode-First Unique Character in a String
- leetcode---First Unique Character in a String
- [387] First Unique Character in a String
- leetcode:First Unique Character in a String
- HTML自学 第三节
- PostgreSQL upsert
- 关于Android中抛出android.app.Fragment$InstantiationException异常
- ifStream读取ANSI/Unicode/Utf8文本保存到string里并转成gbk编码
- Redis:实现简单的分布式爬虫
- LeetCode_387. First Unique Character in a String
- 欢迎使用CSDN-markdown编辑器
- 学习HTML、CSS心得<<使用font css>>打造个性图标
- Android 发送短信
- 2015年第六届蓝桥杯省赛真题之六加法变乘法
- LeetCode 204. Count Primes
- Android之旅第四站——GridView的使用…
- Android中XML文件的序列化
- 【初码干货】关于.NET玩爬虫这些事