查找字符流中第一个出现的不重复字符
2014-09-15 22:28
211 查看
package com.a.b; public class CharStatistics { public static void main(String[] args) { String string = "google"; char ch = getAppearOnce(string); System.out.println(ch); } private static char getAppearOnce(String string) { final int n = 256; int[] map = new int ; for (int i = 0; i < n; i++) { map[i] = -1; } int length = string.length(); // 扫描一遍输入的字符,添加到hash map中 for (int i = 0; i < length; i++) { char ch = string.charAt(i); if (map[ch] == -1) { // 保存字符出现的位置 map[ch] = i; } else if (map[ch] >= 0) { // 第二次出现之后,置为-1 map[ch] = -2; } } char ret = '\0'; int minIndex = Integer.MAX_VALUE; for (int i = 0; i < n; i++) { int index = map[i]; if (index >= 0 && index < minIndex) { ret = (char) i; minIndex = index; } } return ret; } }
相关文章推荐
- 给定一个字符串,查找该字符串中第一个重复出现的字符索引。要求:时间复杂度为O(n)。
- C++实现一个栈,出栈,入栈,返回最小值 时间复杂度为O(1),查找字符串中第一个重复出现的字符
- 查找字符串中第一个出现的不重复的字符
- 用java实现,查找字符串中第一个没有重复出现的字符
- 经典考题——无重复字符问题(查找字符串中第一个无重复字符)
- strpbrk——在串中查找第一个在给定串中出现的字符
- 面试100题:17.查找第一个只出现一次的字符
- 查找字符串中第一个不重复的字符
- 从一个字符串中返回第一个没有重复出现的字符(例如"Hello World",返回"H")
- sqlserver分隔字符串,查找父类下所有子类,删除重复字符串,计算一字符串在别一字符中出现的次数
- 编程珠玑第9章二分搜索(有重复数字)中查找某数出现的第一个位置
- 面试100题:17.查找第一个只出现一次的字符
- 查找字符串中第一个只出现一次的字符
- 找出字符串中第一个不重复出现的字符(仅小写字母)
- 查找字符串中第一个不重复的字符
- 查找字符串中第一个非重复字符
- 算法练习_004 查找第一个不重复的字符
- 字符串第一个重复出现的字符_超级牛逼的死想
- 查找字符串中第一个只出现一次的字符
- 查找字符串中第一个只出现一次的字符