实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

示例 1:

输入: s = "leetcode"
输出: false

示例 2:

输入: s = "abc"
输出: true

限制:

  • 0 <= len(s) <= 100
  • 如果你不使用额外的数据结构,会很加分。

Python 解答:
1.使用集合

class Solution:
    def isUnique(self, astr: str) -> bool:
        return len(astr) == len(set(astr))

2.暴力

class Solution:
    def isUnique(self, astr: str) -> bool:
        for i in range(len(astr)):
            for j in range(i+1, len(astr)):
                if astr[i] == astr[j]:
                    return False
        return True

3.数组,相当于python列表

class Solution:
    def isUnique(self, astr: str) -> bool:
        flag = [False for i in range(26)]
        for c in astr:
            if flag[ord(c)-ord('a')]:
                return False
            else:
                flag[ord(c)-ord('a')] = True
        return True

4.位运算,不使用其他数据结构的

class Solution:
    def isUnique(self, astr: str) -> bool:
        MASK = 0
        for c in astr:
            pos = ord(c)-ord('a')
            bit = 1 << pos
            if MASK & bit:
                return False
            else:
                MASK |= bit
        return True
最后修改日期: 2021年4月20日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。