E题

蛇皮走位即可

  • n 为奇数时: 在最后一行第2个位提前拐弯
zyxwvu
zyxwvt
ryxwvt
ryxwvs
rpxwvs
  • n 为偶数时:在倒数第二行最后一位直接拐到终点
zyxwvu
zyxwvt
qyxwvt
qyxwvs
pyxwvs
pyxwvr

拐弯处选字母优先选出现次数最少的字母,也就26个,用计数器记录使用了字母的个数,每一次拐弯都暴力搜索即可。

F题

["red","rde","erd","edr","der","dre"]

字符串前三个数,必定只有上面6种情况,知道前三个,后面就是一直重复循环,如:redredred,erderder等,所以合法的字符串其实只有6种,这6种与原字符串对比,就能知道当前位是否需要修改,需要修改为1,不需要就为0。

  • 操作1 修改字符,相当于修改 "当前位是否要修改"
  • 操作2 查询最小修改次数,遍历6种情况,求最小修改区间和

单点修改,区间和查询,很明显树状数组或者线段树。

用6个树状数组记录6种情况。根据操作1维护6个树状数组即可。