def distinctExcept
(string
: String, elements
: Int
*) = { val pairsToRemove
= (0 to string.
length) .
zip(for (k
<-
0 until string.
length -
1 if string
(k
) == string
(k +
1)) yield k -
> (k +
1)) .
collect { case (x,
(a, b
)) if !elements.
contains(x
) => (a, b
) } .flatMap(x => x._1 :: x._2 :: Nil)
(for (k
<-
0 until string.
length -
1 if !pairsToRemove.
contains(k
)) yield string
(k
)).
mkString }
println(distinctExcept("aagvvbbfagacc", 0,2))
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewoJZGVmIGRpc3RpbmN0RXhjZXB0KHN0cmluZzogU3RyaW5nLCBlbGVtZW50czogSW50KikgPSB7CiAgICB2YWwgcGFpcnNUb1JlbW92ZSA9ICgwIHRvIHN0cmluZy5sZW5ndGgpCiAgICAgIC56aXAoZm9yIChrIDwtIDAgdW50aWwgc3RyaW5nLmxlbmd0aCAtIDEgaWYgc3RyaW5nKGspID09IHN0cmluZyhrICsgMSkpIHlpZWxkIGsgLT4gKGsgKyAxKSkKICAgICAgLmNvbGxlY3QgeyBjYXNlICh4LCAoYSwgYikpIGlmICFlbGVtZW50cy5jb250YWlucyh4KSA9PiAoYSwgYikgfQogICAgICAuZmxhdE1hcCh4ID0+IHguXzEgOjogeC5fMiA6OiBOaWwpCiAgICAoZm9yIChrIDwtIDAgdW50aWwgc3RyaW5nLmxlbmd0aCAtIDEgaWYgIXBhaXJzVG9SZW1vdmUuY29udGFpbnMoaykpIHlpZWxkIHN0cmluZyhrKSkubWtTdHJpbmcKICB9CiAgCiAgICBwcmludGxuKGRpc3RpbmN0RXhjZXB0KCJhYWd2dmJiZmFnYWNjIiwgMCwyKSkKfQ==