AT_code_festival_2017_qualc_d Yet Another Palindrome Partitioning

题目描述

给定一个字符串 $\texttt{s}$,把 $\texttt{s}$ 分成 $N$ 个子串,要求每个子串中的字母经过一定的移动,可以变成一个回文串(如`aab`经过一定的移动,可以变成`aba`,而`aba`是一个回文串),且 $N$ 最小。

输入格式

一个字符串 $\texttt{s}$($1 \le |\texttt{s} |\le 2 \times 10^5$)。

输出格式

一个正整数 $N$,表示最少的子串个数。

说明/提示

### 数据范围 - $ 1\ \leq\ |s|\ \leq\ 2 \times 10^5 $ - $ s $ 仅由英文小写字母组成。 ### 样例解释 1 将其分割为 `aabxyyzz` = `aab` + `xyyzz` 即可。 此时,将 `aab` 的字母重新排列可得到回文 `aba`,将 `xyyzz` 的字母重新排列可得到回文 `zyxyz`。 ### 样例解释 2 将 `byebye` 的字母重新排列可得到回文 `byeeyb`。 ### 样例解释 4 将其分割为 `abcabcxabcx` = `a` + `b` + `cabcxabcx` 即可。