LeetCode#387First Unique Character in a String

问题描述

Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.

Examples:

s = "leetcode"
return 0.

s = "loveleetcode",
return 2.

Note: You may assume the string contain only lowercase letters.

补充说明:

这个题目的要求简单明了, 给定一个名为s的字符串,然后找到第一个不重复的字母,然后返回该字母的下标。
如果不存在符合条件的字母,则返回-1。

方案分析

  1. 典型的字母统计问题,首先应该想到的是使用hash的方式对字母出现的次数进行标记。
  2. 将hash字母表中的出现次数为1的字母返回,并从字符串中查找下标。

python实现

class Solution(object):
    def firstUniqChar(self, s):
        """
        :type s: str
        :rtype: int
        """
        dict = {}
        for item in s:
            if item in dict.keys():
                dict[item] += 1
            else:
                dict[item] = 1

        for i in range(len(s)):
            if dict[s[i]] == 1:
                return i
        return -1

python实现2

def firstUniqChar(self, s):
    """
    :type s: str
    :rtype: int
    """

    letters='abcdefghijklmnopqrstuvwxyz'
    index=[s.index(l) for l in letters if s.count(l) == 1]
    return min(index) if len(index) > 0 else -1

你可能感兴趣的:(LeetCode#387First Unique Character in a String)