这同样是剑指Offer中的很经典的一道面试题。题目描述为:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'. 一开始大家就会想到最简单的方法就是每访问到一个字符的时候,与后面的每一个字符去进行比较,若没有发现相同的元素,那么该元素就是第一个只出现一次的字符。这样的复杂度为O(n^2). 显然这样的效率不高。 这道题的大方向就是一题查找算法,常见的查...
分类:
编程语言 时间:
2016-08-21 21:23:57
阅读次数:
180
在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符。 输入有多组数据 每一组输入一个字符串。 输出第一个只出现一次的字符下标,没有只出现一次的字符则输出-1。 这么精简的代码居然会超时,真是令我百思不得其解 后来偶然发现需要这样改 二者主要的区别在于15行 ...
分类:
其他好文 时间:
2016-08-14 17:36:49
阅读次数:
133
字符流中第一个不重复的字符 题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输入描述 如果当前字符流没有存在出现一次的字符, ...
分类:
其他好文 时间:
2016-07-21 21:52:58
阅读次数:
110
第一个只出现一次的字符位置 题目描述 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始 思路 代码 ...
分类:
其他好文 时间:
2016-07-05 20:56:49
阅读次数:
157
题目:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”,则输出‘b’。 思路1:遍历,也就是从头开始取字符串中的一个字符,将其与其后的所有字符比较,如果有相同的字符,那么就证明它不是只出现一次的字符。当第一次出现遍历完其后字符并且没有重复时,表明这个字符就是“第一个只出现一次的字符 ...
分类:
其他好文 时间:
2016-07-01 21:25:52
阅读次数:
156
题目:请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。
此题和[35]中找字符串中第一次出现一次的字符是类似的。所以详细过程这里不再赘述。
方案一:顺序扫描。时间复杂度O(N*N)+空间复杂度O(N)。顺序扫描后,记录每一个...
分类:
其他好文 时间:
2016-06-29 11:28:19
阅读次数:
105
题目在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始解题如:ghkdmghkddmolllpj
出现一次的字符:opj
第一个出现一次的字符:o
数组或者Hashpublic class Solution {
public int FirstNotRepeatingChar(String str) {...
分类:
其他好文 时间:
2016-06-24 15:28:14
阅读次数:
89
Java Map接口提供了将Key映射到值的对象,HashMap TreeMap 算法题 :在字符串中找出第一次只出现一次的字符。 ...
分类:
其他好文 时间:
2016-06-12 22:00:00
阅读次数:
289
题目描述
请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。
输出描述:
如果当前字符流没有存在出现一次的字符,返回#字符。
思路:
使用一个HashMap来统计字符出现的次数,同时用一个ArrayList来记录输入流,每...
分类:
其他好文 时间:
2016-06-12 02:15:54
阅读次数:
127
第一个只出现一次的字符:在字符串中找出第一个只出现一次的字符。如输入“abaccdeff”则输出b 答案:由于题目出现了与字符出现次数相关。我们可以利用一个容器来存放每个字符出现的次数,也就是说这个容器的作用是把一个字符隐射成一个数字。所以我们利用哈希表。 ...
分类:
其他好文 时间:
2016-06-11 10:34:56
阅读次数:
413