var a = ArrayBuffer('a', 'b', 'c', 'd', 'e', 'a', 'b', 'f', 'g', 'h', 'a', 'b', 'c', 'i', 'j', 'k', 'l', 'a')
var aa = cal(a)
for(i <- aa){
println(i)
}
//一个递归的函数,看到后面和前面相同的删除后面的元素
var lessOne = new ArrayBuffer[(Char, Int)]
def cal(a:Buffer[Char]): ArrayBuffer[(Char, Int)] = {
var index = new ArrayBuffer[Int]
if (a.length > 0) {
var one = a(0)
var count = 1
index += 0
for (i <- 1 to a.length - 1) {
if (one == a(i)) {
count += 1
index += i
}
}
lessOne += ((one, count))
var rm_in = 0
for (j <- index) {
if (j == 0) {
a -= a(j)
rm_in += 1
} else {
a -= a(j - rm_in)
rm_in += 1
}
}
cal(a)
} else {
return lessOne
}
}