题目意思:
给你一个串r,求一个串s,使得s的前缀1+s的前缀2+s的前缀3+...+s的前缀n+s=r .
解题思路:
KMP+贪心。
初始时把r[1]赋给s[1],从r中每个字符从前至后依次匹配s,当匹配失败时,说明该字符在模式串中没有出现,由贪心思想,把它放到最后(前面满足要求的话,最短的也要从上个完全匹配开始),所以把从上一次的完全匹配的位置到该字符之间的所有字符作为新的模式串,继续匹配。
当完全匹配时,更新上次完全匹配的位置值。
代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include