使用java 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A 及它的长度 n。请返回第一个重复出现的字符。保证 字符串中有重复字符,字符串的长度小于等于 500。
时间: 2024-04-08 15:29:21 浏览: 65
java统计字符串中重复字符出现次数的方法
可以使用哈希表来解决这个问题。遍历字符串中的每个字符,将字符作为键存储在哈希表中,并将其出现次数作为值。每次遇到一个字符,先检查哈希表中是否存在该字符,如果存在,则返回该字符;否则,将字符添加到哈希表中。最后如果没有找到重复字符,则返回空字符。
以下是使用Java实现的代码示例:
```java
import java.util.HashMap;
public class Solution {
public char findFirstRepeatChar(String A, int n) {
HashMap<Character, Integer> map = new HashMap<>();
for (int i = 0; i < n; i++) {
char c = A.charAt(i);
if (map.containsKey(c)) {
return c;
}
map.put(c, 1);
}
return '\0'; // 如果没有重复字符,则返回空字符
}
}
```
这个算法的时间复杂度为O(n),其中n是字符串的长度。哈希表的插入和查找操作的平均时间复杂度为O(1)。
阅读全文