题目描述
对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。 测试样例: “qywyer23tdd”,11 返回:y //基数排序思想
import java.util.*; public class FirstRepeat { public char findFirstRepeat(String A, int n) { // write code here int target=0; char charS[]=A.toCharArray(); ArrayList<ArrayList<Character>> arrayList=new ArrayList<>(); for(int i=0;i<10;i++) { ArrayList< Character> c=new ArrayList<>(); arrayList.add(c); } for (char c:charS) { int a=(int)c%10; if (arrayList.get(a).contains(c)) { target=c; break; } else { arrayList.get(a).add(c); } } return (char)target; } }