在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)。怎么编写python程序
时间: 2024-04-15 17:32:04 浏览: 95
python 实现 第一个只出现一次的字符
可以使用Python的字典来解决这个问题。首先,我们可以遍历字符串中的每个字符,并将其作为字典的键,出现的次数作为字典的值。然后,再次遍历字符串,找到第一个出现次数为1的字符,返回其位置。
下面是一个示例代码:
```python
def find_first_unique_char(s):
char_count = {}
# 计算每个字符出现的次数
for char in s:
if char in char_count:
char_count[char] += 1
else:
char_count[char] = 1
# 找到第一个出现次数为1的字符
for i in range(len(s)):
if char_count[s[i]] == 1:
return i
return -1
# 测试
s = "abccba"
print(find_first_unique_char(s)) # 输出 2
s = "abcabc"
print(find_first_unique_char(s)) # 输出 -1
```
在这个示例中,我们首先创建了一个空字典`char_count`来存储每个字符的出现次数。然后,我们遍历字符串`s`中的每个字符,如果字符已经在字典中,则将其对应的值加1;否则,在字典中创建该字符,并将其对应的值设为1。接下来,我们再次遍历字符串`s`,找到第一个出现次数为1的字符,并返回其位置。如果没有找到满足条件的字符,则返回-1。
注意:该解法时间复杂度为O(n),其中n为字符串的长度。
阅读全文