CF960A Check the string

题目描述

A 有一个只包含若干个小写英文字母 'a' 的字符串。他把这个字符串交给他的朋友 B,B 会在字符串末尾添加若干个字母 'b'。由于 A 和 B 都喜欢字符 'a' 和 'b',他们确保此时字符串中至少有一个 'a' 和一个 'b'。 接着,B 把这个字符串交给 C,C 会在字符串末尾添加若干个字母 'c'。不过,因为 C 是 A 和 B 的好朋友,他添加的 'c' 的数量必须等于字符串中 'a' 的数量,或者等于字符串中 'b' 的数量。也有可能 'c' 的数量同时等于 'a' 和 'b' 的数量。 现在你手中有一个字符串,你想判断它是否可能通过上述过程得到。如果可以得到,输出 "YES";否则输出 "NO"(不带引号)。

输入格式

第一行包含一个字符串 $S$($1 \leq |S| \leq 5000$)。保证字符串只包含小写英文字母 'a'、'b'、'c'。

输出格式

如果字符串可以通过上述过程得到,输出 "YES";否则输出 "NO"。

说明/提示

考虑第一个样例:'c' 的数量等于 'a' 的数量。 考虑第二个样例:虽然 'c' 的数量等于 'b' 的数量,但顺序不正确。 考虑第三个样例:'c' 的数量等于 'b' 的数量。 由 ChatGPT 4.1 翻译