字符排序 题面描述 小杨有 n个仅包含小写字母的字符串 s1,s2,...,sn,小杨想将这些字符串按一定顺序排列后拼接到一起构成字符串t。小杨希望最后构成的字符串 t满足: 假设ti 为字符串 t的第i 个字符,对于所有的j<i 均有 tj≤ti。两个字符的大小关系与其在字母表中的顺序一致,例如 e<g<p<s。 小杨想知道是否存在满足条件的字符串排列顺序。 输入格式 第一行包含一个正整数 T,代表测试数据组数。 对于每组测试数据,第一行包含一个正整数 n,含义如题面所示。 之后n 行,每行包含一个字符串si 。 输出格式 对于每组测试数据,如果存在满足条件的排列顺序,输出 1,否则输出 0。 样例 样例解释 对于第一组测试数据,一种可行的排列顺序为 aa+ac+de,构成的字符串 t为 aaacde,满足条件。 对于全部数据,保证有 1≤t,n≤100每个字符串的长度不超过 10。

正确答案:必要条件:每个串自身必须非降(否则其内部字符在t中连续会破坏单调性)。再把各串按首字符排序,相邻须满足前串末尾<=后串首字符(区间首尾相接)。全部满足输出1,否则0。
试卷来源:202412 CCF-GESP编程能力等级认证C++四级真题