1. 程式人生 > >首個重複字元

首個重複字元

題目描述

對於一個字串,請設計一個高效演算法,找到第一次重複出現的字元。

給定一個字串(不一定全為字母)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; } }