题意分析
1.题目大致说的是让你输出符合这种条件(在所给的字符串中至少有一个不是它的子串)的字符串对应的label,若没有输出-1;
2.判断子串可以用string.h下的strstr(s1, s2)函数,若s2 是s1的子串则返回在s1中s2首字母对应的地址,若不是则返回NULL,想进一步了解strstr可访问 ;
3.如果只是暴力比较两个字符串是否某个是某个的子串时会超时,还需进一步优化;
4.设那个符合条件的初始位置maxx=-1,可以从最后一个字符串开始遍历(因为它最长,越在后面的越有可能符合条件),比较相邻的两个字符串,若短的是长的子串,则继续遍历,否则即短的不是长的子串时,可以更新maxx了,不过还没完,再进行进一步的判断;
5.既然该串符合条件,那么位于它后面的串中倘若有的包含它,并且在位于它之前的字符串中含有不属于它的串,这样maxx就可以更大了,详细情况见AC代码。
AC代码
#include #include #include #include #include #include #include #include #include #include #include