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个树状数组即可。