首個重複字元
阿新 • • 發佈:2018-11-14
題目描述
對於一個字串,請設計一個高效演算法,找到第一次重複出現的字元。
給定一個字串(不一定全為字母)A及它的長度n。請返回第一個重複出現的字元。保證字串中有重複字元,字串的長度小於等於500。
測試樣例:
“qywyer23tdd”,11
返回:y
三種方法(都是基於雜湊思想根據ascii碼儲存hash值)
① HashMap
② HashSet
③ 陣列Hash
import java.util.*;
public class FirstRepeat {
public char findFirstRepeat(String A, int n) {
// write code here
int[] flag = new int[256];
Arrays.fill(flag, 0);
int ascii = 0;
char dc = ' ';
for(int i=0; i<n; i++){
char c = A.charAt(i);
ascii = (int)c;
flag[ascii] = flag[ascii] + 1;
if(flag[ascii] > 1){
dc = c;
break ;
}
}
return dc;
}
}