小编spa*_*ity的帖子

实现算法以确定字符串是否具有所有唯一字符

背景:我是一名CS n00b正在通过"破解编码面试".第一个问题要求"实现一个算法来确定一个字符串是否具有所有唯一字符." 我(可能是天真的)实现如下:

def isUniqueChars2(string):
  uchars = []
  for c in string:
    if c in uchars:
      return False
    else:
      uchars.append(c)
  return True
Run Code Online (Sandbox Code Playgroud)

作者建议以下实施:

def isUniqueChars(string):
  checker = 0
  for c in string:
    val = ord(c) - ord('a')
    if (checker & (1 << val) > 0):
      return False
    else:
      checker |= (1 << val)
  return True
Run Code Online (Sandbox Code Playgroud)

是什么让作者的实现比我的更好(FWIW,作者的解决方案是在Java中,我把它转换为Python - 是我的解决方案,不可能在Java中实现)?或者,更一般地说,解决这个问题需要什么?我采取的方法有什么问题?我假设有一些基本的CS概念(我不熟悉)很重要,有助于选择采用哪种方法解决这个问题.

python

9
推荐指数
2
解决办法
1万
查看次数

标签 统计

python ×1