您的位置:首页 > 其它

去哪儿-首个重复字符

2016-04-07 16:52 183 查看
题目:

对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。

给定一个字符串(不一定全为字母)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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: