AC自动机
520. 检测大写字母 我们定义,在以下情况时,单词的大写用法是正确的: 全部字母都是大写,比如 "USA" 。 单词中所有字母都不是大写,比如 "leetcode" 。 如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。 给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。 示例 1: 输入: word = "USA" 输出: true 示例 2: 输入: word = "FlaG" 输出: false 思路 ac表示当前状态,state表示输入状态 由第一个字母大小写决定ac初状态 word[0]大写:ac初状态0 word[0]小写:ac初状态2 当ac初状态0时(即首字母大写):下一个字母可以大写,也可以小写 当ac初状态2时(即首字母小写):下一个字母只能小写 当ac状态为1时(即前n个字母均大写):下一个字母只能大写 当ac状态为2时(即当前字母小写):下一个字母只能小写 以上状态转移失败均跳转到ac=4,具体流程如图所示。 python实现: class Solution: def detectCapita....