背景:我是一名 CS n00b,正在努力完成“破解编码面试”。第一个问题要求“实现一个算法来确定一个字符串是否具有所有唯一字符。” 我的(可能是幼稚的)实现如下:
def isUniqueChars2(string):
uchars = []
for c in string:
if c in uchars:
return False
else:
uchars.append(c)
return True
作者建议如下实现:
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
是什么让作者的实现比我的更好(FWIW,作者的解决方案是用 Java 编写的,我将其转换为 Python ——我的解决方案是无法用 Java 实现的)?或者,更一般地说,解决这个问题需要什么?我采取的方法有什么问题?我假设有一些基本的 CS 概念(我不熟悉)很重要,有助于告知选择哪种方法来解决这个问题。