Mr Loser

题解 CF1145F 【Neat Words】

2019-04-14 16:43:25


其实这题并没有那么难,打表就可以了。

考虑到用Pascal的set做这道题比较简单,所以我又去复习了一遍Pascal

集合的声明:

VAR S:SET OF 基类型;       {注意基类型可存的范围不可超过256个}

高清代码:

VAR S1,S2:SET OF CHAR;S:STRING[255];I:INTEGER;F,R:BOOLEAN;
BEGIN
    S1:=['A','E','F','H','I','K','L','M','N','T','V','W','X','Y','Z'];          {集合初始化}
    S2:=['B','C','D','G','J','O','P','Q','R','S','U'];                              {同上}
    READLN(S);      {注意Pascal的string是从下标1开始存的}
    IF (S[1] IN S1) THEN F:=TRUE ELSE F:=FALSE;                     {判断字符串有可能属于哪一种类型}{in运算符表示某个元素是否被集合所包含}
    R:=TRUE;
    FOR I:=2 TO LENGTH(S) DO IF F THEN R:=R AND (S[I] IN S1) ELSE R:=R AND (S[I] IN S2);                                                            {遍历字符串,得到结果}
    IF R THEN WRITE('YES') ELSE WRITE('NO');        {输出答案}
END.