我正在解决学习Scala的琐碎问题。这是我想出的在Scala中实现一个算法来确定一个字符串是否具有所有唯一字符
def isUnique(str: String): Boolean = {
if (str.length > 128) return false
val uniqueChars = new Array[Boolean](128)
!(str.map(c => addChar(c, uniqueChars)).find(identity).isDefined)
}
def addChar(ch: Char, uniqueChars: Array[Boolean]): Boolean = {
if (uniqueChars(ch)) return true else {
uniqueChars(ch) = true;
return false
}
是这样吗?
请注意,我不关心逻辑或优化在这一点上。我只需要学习Scala的做法。
[编辑] 让我们假设我们不想使用字符串distinct方法。我只需要验证Scala的功能风格。
'str.length == str.distinct.length' – jwvh
请参阅https://stackoverflow.com/questions/22834018/scala-function-test-a-string-for-unique-char – frozen
糟糕!这更直接:'str == str.distinct' – jwvh