前言

这是一道较为简单的题。

一个字问题:

题面描述:给定一个字符串 $s$ 包含小写,大写和问号,要求将小写或大写字母填入问号中,使得不存在大写字母 T,使得 T 在字符串中出现两次。
解法:显然 $s$ 中的大写就不能被问号填,小写就不用管,

题解

因为求的是子序列,所以我们可以将 TTxC 这样的格式分开来做,即分别考虑 TT,x,C。因为 TT 较为难处理,所以考虑反过来处理,变成 CxTT,那么就分为以下 3 种情况:

  1. 没有 C(没有大写字母);
  2. 有 C,但没有 xC(即前面一串是大写,后面一串是小写);
  3. 有 xC,但没有 TT(这种情况的中文解释大家自己也知道);

好了,情况分好了后,我们就不用再管 CxTT 了!(但是我还要追!)
可以看到,1,2 种情况是非常简单的,这里只考虑第 3 种情况。

作者 wzy

发表回复