好字符串
题号:NC289483
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}给你一个长度为 n,仅由小写字母组成的字符串 s_1s_2\cdots s_n(下标从 1 开始)。我们定义一轮操作:
\hspace{23pt}\bullet\,选择某个位置 i (1\leqq i\leqq n),删除字符 s_i,其余字符按照原有顺序从前到后依次拼接。换句话说,删除完后的字符串将变为 s'=\texttt{
\hspace{15pt}现在我们想知道,是否可以通过至多一轮(包含零次)如上操作,使得字符串 s' 满足:任意两个相邻位置上的字符互不相同。换句话说,如果对于任意的 i \left(1 \lt i \leq \left | s' \right | \right),都满足 s'_i\ne s'_{i-1},则为好字符串(其中,\left | s' \right | 表示字符串 s' 的长度)。

输入描述:

\hspace{15pt}第一行输入一个整数 n\left(1\leq n\leq 10^5\right),表示字符串 s 的长度。 
\hspace{15pt}第二行输入一个长度为 n,仅由小写字母组成的字符串 s

输出描述:

\hspace{15pt}如果可以使得字符串满足题干中的条件,则输出 \rm YES,否则输出 \rm NO

\hspace{15pt}注意,输出均为大写字母。
示例1

输入

复制
6
abcdef

输出

复制
YES

说明

\hspace{15pt}在这个样例中,给定的字符串任意两个相邻位置上的字符已经互不相同,所以不需要进行任何操作。
示例2

输入

复制
6
abccde

输出

复制
YES

说明

\hspace{15pt}在这个样例中,删除第三个字符 \texttt{`c'} 即可。
示例3

输入

复制
6
aabbcc

输出

复制
NO