对于一个字符串,请设计一个高效算法,找到第二次重复出现的字符。 给定一个字符串(不一定全为字母),请返回第一个重复出现两次的字符(也就是一共出现3次)。字符串的长度小于等于500。例如abzxyzza中,第1个重复出现两次的字符是z,则该函数应该返回z,如果没有重复出现两次以上的字符,则输出'\n'(回车符)。
时间: 2023-11-28 08:49:12 浏览: 185
可以使用哈希表来记录每个字符出现的次数,当某个字符出现次数达到2次时,返回该字符即可。时间复杂度为O(n)。
具体实现如下:
```python
def find_second_repeat_char(s):
count = {}
for c in s:
if c in count:
count[c] += 1
if count[c] == 2:
return c
else:
count[c] = 1
return '\n'
```
其中,count是一个字典,用来记录每个字符出现的次数。遍历字符串s的每个字符,如果该字符已经在count中出现过,则将其出现次数加1,如果出现次数达到2次,则返回该字符;否则继续遍历。如果该字符没有在count中出现过,则将其出现次数初始化为1。如果遍历完整个字符串后仍然没有找到重复出现两次以上的字符,则返回回车符。
阅读全文