#603. CF765B Code obfuscation
CF765B Code obfuscation
题目描述
Kostya 为了防止代码被攻击,决定在比赛前对代码做“混淆”。其混淆规则如下:
- 先找到程序中第一个出现的变量名(原程序中不使用单字母变量名),把它的所有出现位置都替换为字母
a; - 再找到尚未被替换的第二个变量名,把它的所有出现位置都替换为
b; - 以此类推,第三个替换为
c,……。
已知程序中不同的标识符不超过 个。给出将程序中所有空白字符去掉后、仅由小写字母组成的串 ,判断这个 是否可能是上述混淆的结果。
换言之:如果从左到右扫描 ,每次遇到一个未出现过的新字母时,它应该恰好是按照 a,b,c,... 的顺序出现;否则就是非法。
输入格式
一行,一个由小写英文字母组成的字符串 ()。
输出格式
如果 可以是混淆后的结果,输出 YES;否则输出 NO。
样例输入输出
样例输入1
abacaba
样例输出1
YES
样例输入2
jinotega
样例输出2
NO
说明/提示
样例 1 中可对应的原标识符序列为 “number string number character number string number”。按规则依次把 number→a、string→b、character→c,得到 abacaba。
数据范围与测试点说明
- ;
- 仅由小写英文字母组成;
- 原程序中不同标识符个数不超过 。
时间限制与内存限制
- 时间限制: 秒
- 内存限制: MB