简单的编写代码,输入一个字符串 str,输出第 m 个只出现过 n 次的字符,如在字符串 gbgkkdehh 中,找出第 2 个只出现 1 次的字符,输出结果:d
时间: 2024-12-19 16:22:25 浏览: 13
在Python中,你可以使用字典(dictionary)来跟踪每个字符及其出现次数,然后遍历这个字典找到满足条件的字符。这里是一个简单的解决方案:
```python
def find_char(string, m, n):
# 创建一个空字典来存储字符计数
char_count = {}
# 遍历字符串,更新字符计数
for char in string:
if char in char_count:
char_count[char] += 1
else:
char_count[char] = 1
# 找到第m个出现n次的字符
count_index = 0
target_chars = []
for char, freq in sorted(char_count.items(), key=lambda x: (x[1], x[0])):
if freq == n and count_index < m:
target_chars.append(char)
count_index += 1
# 如果没有找到足够的符合条件的字符,则返回None
if count_index < m:
return None
else:
# 返回第m个出现n次的字符
return target_chars[m - 1]
# 测试函数
string = "gbgkkdehh"
m = 2
n = 1
result = find_char(string, m, n)
if result is not None:
print(f"第 {m} 个只出现 {n} 次的字符是: {result}")
else:
print("没有找到符合条件的字符")
```
在这个代码中,我们首先创建了一个空的字典`char_count`,然后遍历给定的字符串,对于每个字符,我们在字典中增加它的计数。接着,我们根据字符频率和它们在字典中的顺序排序。当我们找到第一个出现n次的字符时,开始计算索引`count_index`。当`count_index`等于`m`时,我们就找到了第m个只出现n次的字符。
阅读全文