去哪儿-首个重复字符
2016-04-07 16:52
183 查看
题目:
对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。
给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。
测试样例:
“qywyer23tdd”,11
返回:y
思路:我们这里使用hash表的方法来做这个问题,这里由于是字符可以直接使用数组代替我们的Hash表,具体做法遍历一次字符串数组,在java中就是我们的char数组,然后直接用大小为255的整形数组记录出现次数,如果第一个出现不为0的就直接返回。
对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。
给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。
测试样例:
“qywyer23tdd”,11
返回:y
思路:我们这里使用hash表的方法来做这个问题,这里由于是字符可以直接使用数组代替我们的Hash表,具体做法遍历一次字符串数组,在java中就是我们的char数组,然后直接用大小为255的整形数组记录出现次数,如果第一个出现不为0的就直接返回。
public class FirstRepeat { public char findFirstRepeat(String A, int n) { if (A==null||A.length()<=0) { return 0; } char[] array=A.toCharArray(); return find(array); } private char find(char[] array) { int[] a=new int[255]; for (int i = 0; i < array.length; i++) { if (a[array[i]]==0){ a[array[i]]++; }else return array[i]; } return 0; } }
相关文章推荐
- 每个Xcode开发者应该知道的七个使用技巧
- 利用WCF上传,下载,删除服务器文件
- 笔记(4/7)JAVA
- OSI七层和TCP/IP四层网络架构
- InputSteam源码分析
- Log4j按级别输出日志到不同文件配置分析
- Oracle-一个中文汉字占几个字节?
- 有趣的数学问题-鸽巢原理
- CALayer的隐式动画实例 - 钟表
- session原理
- 【MFC】:将int型转为CString还有丢失工具箱怎么办?
- 又一次作业
- leetcode笔记:Invert Binary Tree
- bash配置文件/etc/profile,/etc/bashrc,~/.bash_profile,~/.bashrc详解及修改PATH环境变量
- Java 常量池
- Spark应用执行机制
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- opencv第一堂 - 环境配置
- 友盟iOS推送配置(从真机调试到推送)
- 激活函数