LeetCode:字符串中的第一个唯一字符(Python版本)

LeetCode刷题日记

  • 字符串中的第一个唯一字符
    • Python代码

字符串中的第一个唯一字符

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

案例:

s = “leetcode”
返回 0.
s = “loveleetcode”,
返回 2.

注意事项: 您可以假定该字符串只包含小写字母。

Python代码

from collections import Counter
class Solution(object):
    def firstUniqChar(self, s):
        """
        :type s: str
        :rtype: int
        """
        code = []  # 出现一次的字符
        count = Counter(s).most_common()  # 统计字符出现次数
        so = sorted(count, key=lambda x: x[1])  # 按照出现次数排序
        for i in range(len(so)):  # 统计出现一次的字符
            if so[i][1] == 1:
                code.append(so[i][0])
        for i in s:  # 返回索引
            if i in code:
                return s.index(i)
        return -1  # 不存在的情况

    print(firstUniqChar(firstUniqChar, "loveleetcode"))

题目假设只包含小写,降低了难度系数,不过我猜想如果包含大小写,应该做一次大小写转换就行了。

你可能感兴趣的:(字符串,Python,初级算法)