美文网首页
面试题-01.01-判定字符是否唯一

面试题-01.01-判定字符是否唯一

作者: 阿凯被注册了 | 来源:发表于2020-10-23 08:42 被阅读0次

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


image.png

解题思路:

  1. 思路一:字典存储;
  2. 思路二:位运算,astr包含了26个字母,用26位的二进制存储,变化范围为2^0至2^{26}|或操作用于对某一位赋值;&与操作用于判断mask中某一位是否出现过,若出现过,&后结果大于0。

Python3代码:

class Solution:
    def isUnique(self, astr: str) -> bool:
        # ans = {}
        # for i in range(len(astr)):
        #     if astr[i] in ans:
        #         return False
        #     else:
        #         ans[astr[i]] = 1
        # return True

        # 位运算
        mask = 0 
        for c in astr:
            if mask & (1<<ord(c)-ord('a')) != 0:
                return False
            else:
                mask |= 1<<ord(c) - ord('a')
        return True

相关文章

网友评论

      本文标题:面试题-01.01-判定字符是否唯一

      本文链接:https://www.haomeiwen.com/subject/pbztmktx.html