码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-05-07 13:47:50      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:code   链接   val   检查   pytho   bsp   als   tco   pre   

实现一个算法,确定一个字符串 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)

 

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

标签:code   链接   val   检查   pytho   bsp   als   tco   pre   

原文地址:https://www.cnblogs.com/jackson669/p/12842261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!