剑指offer——第一个只出现一次的字符
2016-07-27 22:02
225 查看
题目描述:
在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置。思路:
第一个只出现一次的字符是关键,就意味着需要所有的字符进行出现次数的统计,所以我们需要两次遍历:第一次获取每个字符出现的次数;第二次把第一个只出现一次的字符找到。在Java中可以通过HashMap实现对每个字符次数的统计,由于在题目中并没有我们限定使用Java提供的内置结构,所以可以通过这种办法迅速找到第一个只出现一次的字符。算法实现:
import java.util.HashMap; public class Solution { public int FirstNotRepeatingChar(String str) { if(str == null||str.equals("")) return -1; char[] ch = str.toCharArray(); HashMap<Character,Integer> map = new HashMap<Character,Integer>(); for(int i = 0;i<ch.length;i++){ if(!map.containsKey(ch[i])){ map.put(ch[i],1); }else{ map.put(ch[i],map.get(ch[i])+1); } } for(int i=0;i<ch.length;i++ ){ if(map.get(ch[i])==1){ return i; } } return -1; } }
相关文章推荐
- js基础
- UVa 7146 Defeat the Enemy(贪心)
- 使用Jsoup 抓取页面的数据
- Jsoup参考文档
- HTML5之本地存储
- jquery mobile 入门级实战1
- JS, Node.js, npm简介
- JavaScript eval() 函数
- 原生js,JQuery查找元素,修改类名
- ubuntu14.04+cuda-7.5(deb)+cuDNN+openCV+caffe 安装(安装笔记一)
- 剑指offer——数组中的逆序对
- javascript-计算24
- [树状数组] poj 1990 MooFest
- JSON转换包含Date日期属性的对象的List集合报错问题
- css 居中总结
- js 的 深拷贝 和 浅拷贝
- JavaScript - 基于原型的面向对象
- 认识Servlet
- JSTL的配置与使用
- css样式重置