Alice 和 Bob 正在玩一个幻想战斗游戏,游戏共有 n
回合,每回合双方各自都会召唤一个魔法生物:火龙(F
)、水蛇(W
)或地精(E
)。每回合中,双方 同时 召唤魔法生物,并根据以下规则得分:
给你一个字符串 s
,包含 n
个字符 'F'
、'W'
和 'E'
,代表 Alice 每回合召唤的生物序列:
s[i] == 'F'
,Alice 召唤火龙。s[i] == 'W'
,Alice 召唤水蛇。s[i] == 'E'
,Alice 召唤地精。Bob 的出招序列未知,但保证 Bob 不会在连续两个回合中召唤相同的生物。如果在 n
轮后 Bob 获得的总分 严格大于 Alice 的总分,则 Bob 战胜 Alice。
返回 Bob 可以用来战胜 Alice 的不同出招序列的数量。
由于答案可能非常大,请返回答案对 109 + 7
取余 后的结果。
示例 1:
输入: s = "FFF"
输出: 3
解释:
Bob 可以通过以下 3 种出招序列战胜 Alice:"WFW"
、"FWF"
或 "WEW"
。注意,其他如 "WWE"
或 "EWW"
的出招序列是无效的,因为 Bob 不能在连续两个回合中使用相同的生物。
示例 2:
输入: s = "FWEFW"
输出: 18
解释:
Bob 可以通过以下出招序列战胜 Alice:"FWFWF"
、"FWFWE"
、"FWEFE"
、"FWEWE"
、"FEFWF"
、"FEFWE"
、"FEFEW"
、"FEWFE"
、"WFEFE"
、"WFEWE"
、"WEFWF"
、"WEFWE"
、"WEFEF"
、"WEFEW"
、"WEWFW"
、"WEWFE"
、"EWFWE"
或 "EWEWE"
。
提示:
1 <= s.length <= 1000
s[i]
是 'F'
、'W'
或 'E'
中的一个。