把 26 个大写字母之间的“矛盾关系”看作一个无向图的边。对一个右端点固定的子串,若它是“和谐”的,则右端点字符不能与窗口内任何与其矛盾的字母同时出现。
用滑动窗口(双指针)从左到右扫描:
conflict[26][26] 的布尔矩阵,conflict[a][b]=conflict[b][a]=true 表示字母 a 与 b 互相矛盾。小钟有一个长度为 n 的全部由大写英文字母组成的字符用 s 。然而,这 26 个英文字母之间并不总是和谐相处的,
有 m 对字母之间存在矛盾,分别表示为 (ch1,1,ch1,2),(ch2,1,ch2,2),…,(chm,1,chm,2) 。
对于某字符用 t ,当且仅当任意两个字符之间不存在矛盾,则称该字符是和谐的。