/**
* Created by kwo2002 on 2015-07-27.
*/
object UniqueChar {
def validUniqueChar(text: String): Boolean = {
def go(n: Int, seq: Int, text: String): Boolean = {
if (n < text.length && seq < text.length) {
if (text.charAt(n) == text.charAt(seq)) {
false
} else {
go(n, seq + 1, text)
}
} else {
if (n + 1 < text.length) {
go(n + 1, n + 2, text)
} else {
true
}
}
}
go(0, 1, text)
}
def main(args: Array[String]) {
println(validUniqueChar("abcdefghijklmn"))
}
}
문제를 풀면서 생각한점.
1. 자바였다면 이중 for loop 를 이용해서 금방 풀었을텐데..
2. 스칼라 재귀함수를 이용해서 풀어보자
3. 이중 루프가 아니라 한번의 재귀호출로 풀어보자
4. if 로 점철된 소스가 뭔가 조잡해보임..