题解 | #万万没想到之聪明的编辑#
万万没想到之聪明的编辑
https://www.nowcoder.com/practice/42852fd7045c442192fa89404ab42e92
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) }#算法学习#