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)
}
京公网安备 11010502036488号