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

实现一个算法,确定一个字符串 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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容