题解 CF1145F 【Neat Words】

t162

2019-04-14 16:43:25

Solution

其实这题并没有那么难,打表就可以了。 考虑到用Pascal的set做这道题比较简单,~~所以我又去复习了一遍Pascal~~ 集合的声明: ```pascal VAR S:SET OF 基类型; {注意基类型可存的范围不可超过256个} ``` 高清代码: ```pascal 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. ```