def countSimilar
(str
: String, ch
: List
[Char
]): String
= { def process
(l
: List
[Char
], acc
: String
= ""): String
= { val tw
= l.
takeWhile(_ == h
) acc + process(
l.drop(tw.length),
if (ch.
contains(h
)) h + tw.
length.
toString else tw.
mkString("") )
}
}
process(str.toList)
}
println(countSimilar("aaaabbbcccss", List('a', 'b')))
println(countSimilar("aaaabbbcccssaaaabb", List('a', 'b', 'c')))
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewoJZGVmIGNvdW50U2ltaWxhcihzdHI6IFN0cmluZywgY2g6IExpc3RbQ2hhcl0pOiBTdHJpbmcgPSB7CgkgIGRlZiBwcm9jZXNzKGw6IExpc3RbQ2hhcl0sIGFjYzogU3RyaW5nID0gIiIpOiBTdHJpbmcgPSB7CgkgICAgbCBtYXRjaCB7CgkgICAgICBjYXNlIE5pbCA9PiBhY2MKCSAgICAgIGNhc2UgaCA6OiBfID0+CgkgICAgICAgIHZhbCB0dyA9IGwudGFrZVdoaWxlKF8gPT0gaCkKCSAgICAgICAgYWNjICsgcHJvY2VzcygKCSAgICAgICAgICBsLmRyb3AodHcubGVuZ3RoKSwKCSAgICAgICAgICBpZiAoY2guY29udGFpbnMoaCkpIGggKyB0dy5sZW5ndGgudG9TdHJpbmcgZWxzZSB0dy5ta1N0cmluZygiIikKCSAgICAgICAgKQoJICAgIH0KCSAgfQoJCgkgIHByb2Nlc3Moc3RyLnRvTGlzdCkKCX0KCQoJcHJpbnRsbihjb3VudFNpbWlsYXIoImFhYWFiYmJjY2NzcyIsIExpc3QoJ2EnLCAnYicpKSkKCXByaW50bG4oY291bnRTaW1pbGFyKCJhYWFhYmJiY2Njc3NhYWFhYmIiLCBMaXN0KCdhJywgJ2InLCAnYycpKSkKfQ==