• letcode 第三题 判定字符是否唯一


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

    示例 1:

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

    示例 2:

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

    方法一:

    使用一个简单的count()函数,统计每一个单词的数字,再来判断。(Set也同理,字典也行,列表也行)

    class Solution:
        def isUnique(self, astr: str) -> bool:
            for i in astr:
                if astr.count(i)>1:
                    return False
            return True


    字典使用的是

    def isUnique(self, astr: str) -> bool:
      adict={}
      for value in astr:
        if value in adict.keys():
          return False
        else:
          adict[value]=0
      return True



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

    方法二:

    使用位运算。

    我们可以使用一个int类型的变量(下文用mark表示)来代替长度为26的bool数组。假设这个变量占26个bit(在多数语言中,这个值一般不止26)。

    那么我们可以把它看成000...00(26个0),这26个bit对应着26个字符,对于一个字符c,检查对应下标的bit值即可判断是否重复。

    学到了。

    class Solution:
      def isUnique(self, astr: str) -> bool:
        mark = 0
        for char in astr:
          move_bit = ord(char) - ord('a')
          if (mark & (1 << move_bit)) != 0:
            return False
          else:
            mark |= (1 << move_bit)
        return True。

    作者:zhen-zhu-hao-hao-chi
    链接:https://leetcode-cn.com/problems/is-unique-lcci/solution/wei-yun-suan-fang-fa-si-lu-jie-shao-by-zhen-zhu-ha/
    来源:力扣(LeetCode)

  • 相关阅读:
    Spring框架(一)-----核心理解
    vi常用编辑
    Avue使用renren-fast-vue开源脚手架工程(一)
    sqlServer触发器调用JavaWeb接口
    Linux常用别名设置
    油猴+IDM不限速下载
    Nginx配置静态web项目
    消息中间件rabbitMQ
    springboot自定义starter
    Nginx配置微信小程序 文件验证
  • 原文地址:https://www.cnblogs.com/jackson669/p/12842261.html
Copyright © 2020-2023  润新知