对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A 及它的长度 n。请返回第一个重复出现的字符。保证 字符串中有重复字符,字符串的长度小于等于 500。
时间: 2023-10-14 12:43:04 浏览: 88
找重复字符
可以使用哈希表来解决这个问题。遍历字符串中的每个字符,使用哈希表记录每个字符出现的次数。当某个字符的出现次数大于1时,就找到了第一个重复出现的字符。
算法步骤如下:
1. 创建一个哈希表,用于记录每个字符的出现次数。
2. 遍历字符串中的每个字符:
- 如果当前字符不在哈希表中,将其加入哈希表,并将出现次数设置为1。
- 如果当前字符在哈希表中,并且出现次数大于1,则返回该字符。
3. 如果遍历完整个字符串都没有找到重复出现的字符,则返回空字符或特定的标识。
这个算法的时间复杂度是O(n),其中n是字符串的长度。由于字符串长度小于等于500,这个算法是高效的。
以下是使用Python实现的示例代码:
```python
def find_first_repeat_char(A, n):
if n <= 0:
return ''
char_count = {}
for i in range(n):
char = A[i]
if char not in char_count:
char_count[char] = 1
else:
char_count[char] += 1
if char_count[char] > 1:
return char
return ''
```
注意:以上是一个基本的算法实现,如果字符串中有多个重复的字符,该算法会返回第一个重复出现的字符。如果需要找到最左边的重复字符,可以在哈希表中记录字符第一次出现的位置,然后在遍历过程中进行比较。
阅读全文