图片说明

javaScript 代码怎么这么少

那就抄一份吧。状态机的思路学习了。

let n = readline(), line;
while(line = readline()){
    let arr = line.split("");
    let s = arr[0], last = arr[0], state = 0;
    for(let i =1;i< arr.length; i++){
        let cur = arr[i]
        switch(state){
            case 0: {
                if(cur == last) state = 1 // AA 状态
                else state = 0  // 正常读取状态
                break;
            }
            case 1: {
                if(cur == last) continue // AAA状态 不存第三个A ,跳出,去下次循环
                else state = 2 // AAB 状态
                break;
            }
            case 2: {
                if(cur == last) continue // AABB 状态 不存 第二个B,跳出,去下次循环
                else state = 0
                break
            }
            default:break;
        }
        s += cur
        last = cur
    }
    console.log(s)
}