输入一个字符串 str,输出第 m 个只出现过 n 次的字符
时间: 2024-09-25 21:14:13 浏览: 61
解决这个问题的一种常见方法是使用哈希表(Python 中的字典)来记录每个字符及其出现次数。然后遍历字符串,找出第 m 个出现次数恰好为 n 的字符。以下是一个 Python 示例:
```python
def find_char(str, m, n):
# 初始化一个字典来存储字符和它们的出现次数
char_count = {}
# 遍历字符串,更新字符计数
for char in str:
if char in char_count:
char_count[char] += 1
else:
char_count[char] = 1
# 创建一个列表来存储出现次数为 n 的字符及其下标,从第一个符合要求的开始
candidates = sorted([(char, index) for index, char in enumerate(char_count.items()) if char == n], key=lambda x: x)
# 如果没有找到满足条件的字符,返回 None 或者报错(m 大于候选字符数量)
if len(candidates) < m or not candidates:
return None
# 返回第 m 个字符
return candidates[m-1]
# 测试示例
str_example = "abcbabc"
m = 2
n = 2
result = find_char(str_example, m, n)
if result is not None:
print(f"The {m}th character that appears exactly {n} times is: {result}")
else:
print("No such character found.")
```
这个函数首先计算每个字符的出现次数,然后筛选出出现 n 次的字符,按顺序排列,最后返回第 m 个符合条件的字符。如果找不到这样的字符或 m 大于可用字符数量,则返回 `None`。
阅读全文