剑指OFFER 第一个只出现一次的字符 STL map解法 使用STL的map函数,可能内存占用会大一些 手写字符hash解法 手动实现字符的映射,hash的一种简单实现方法 两种方法的思路实际是一模一样的 ...
分类:
其他好文 时间:
2020-01-12 13:41:11
阅读次数:
69
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 1 clas ...
分类:
编程语言 时间:
2020-01-01 16:42:57
阅读次数:
73
题目: 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 分析: 使用m ...
分类:
编程语言 时间:
2019-12-25 19:02:20
阅读次数:
91
/* 题目: 求字符串第一个只出现一次的字符。 */ /* 思路: 使用map遍历两次,第一次计数,第二次找到计数为1的第一个字符。 */ #include<iostream> #include<cstring> #include<vector> #include<algorithm> #inclu ...
分类:
其他好文 时间:
2019-12-17 20:38:51
阅读次数:
94
题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). #include <map>class Solution {public: map<char,int> mp; int FirstNotR ...
分类:
其他好文 时间:
2019-12-06 19:30:41
阅读次数:
117
题目: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 分析: 遍历字符串,利用Hashmap将每一个字符出现的值存储起来,然后再遍历字符串,返回第一个字符值为1的索引即可。 程序: C++ cl ...
分类:
编程语言 时间:
2019-12-04 01:21:08
阅读次数:
66
题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写). 题解 方法1: 统计所有字符出现的次数,返回第一个次数为1的数。保存可以用数组或Map等,不多解释。 方法2: 建立两个表,第一个保存当前 ...
分类:
其他好文 时间:
2019-10-23 22:07:50
阅读次数:
96
题目地址 方法一: 两个方向优化时间: 方法二: 两个方向优化时间: ...
分类:
其他好文 时间:
2019-09-21 12:34:37
阅读次数:
59
题目: 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)。 思路: 利用每个字母的ASCII码作hash来作为数组的index。首先用一个58长度的数组来存储每个字母出现的次数,为什么是58呢,主要是 ...
分类:
其他好文 时间:
2019-09-03 16:28:31
阅读次数:
92
1 题目描述 在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)。 2 思路和方法 ch[str[i]]++; if(ch[str[i]]==1) return i; 3 C++核心代码 1 class ...
分类:
其他好文 时间:
2019-08-27 22:44:29
阅读次数:
70