python 刷 leetcode题目(6)

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

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

案例:

s = "leetcode"
返回 0.

s = "loveleetcode",
返回 2.

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

代码如下:通过68ms,

class Solution:
    def firstUniqChar(self, s):
        """
        :type s: str
        :rtype: int
        """
        
        ####
        ref = "abcdefghijklmnopqrstuvwxyz"
        index_list = []
        for i in ref: 
            if(s.count(i) == 1):
                index_list.append(s.index(i))
        if len(index_list) > 0:
            return min(index_list)
        else:
            return -1
 2、 有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。

示例 1:

输入: s = "anagram", t = "nagaram"
输出: true

示例 2:

输入: s = "rat", t = "car"
输出: false

说明:
你可以假设字符串只包含小写字母。

进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

代码如下:通过52ms

class Solution:
    def isAnagram(self, s, t):
        """
        :type s: str
        :type t: str
        :rtype: bool
        """
        import collections
        dict_s = collections.Counter(s)
        dict_t = collections.Counter(t)
        
        if len(dict_s) != len(dict_t):
            return False
        for key, value in dict_s.items():
            if key in dict_t and value == dict_t[key]:
                continue
            else:
                return False
        return True

互相学习, 互相指教。

猜你喜欢

转载自blog.csdn.net/annilingmo/article/details/80580083