题目
对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。
给定一个字符串 (不一定全为字母) A 及它的长度 n 。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于 500。
测试样例:
"qywyer23tdd",11
返回:y
思路&答案
用哈希表解决,代码如下:
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.next();
int num = scan.nextInt();
char[] c = str.toCharArray();
HashMap<Character, String> map = new HashMap<>();
for (int i = 0; i < num; i++) {
if (map.containsKey(c[i])) {
System.out.println(map.get(c[i]));
return;
}
map.put(c[i], String.valueOf(c[i]));
}
}
}