#3294. 重复段删除
重复段删除
题目描述
有一天 Bob 看到一个字符串。它包含非常多不同的字母,以至于字母都用数字标记,但同时每个字母在字符串中至多出现 10 次。Bob 不喜欢这个字符串,因为它含有"重复段":长度为 的重复段是指一个长度为 的子串,其前半部分与后半部分逐字符相同。Bob 开始删除字符串中的所有重复段。他的做法是:只要还存在重复段,就取出最短的一个(若有多个最短的,取最靠左的一个),然后删掉它的左半部分以及这个重复段左边的所有内容。
给你 Bob 看到的字符串。求 Bob 按上述方式删除所有重复段后,字符串变成什么样。
输入格式
输入的第一行包含整数 (),表示字符串长度。下一行包含 个用空格隔开的、0 到 之间的整数——即字符串中各位置上的"字母"。保证每个字母在字符串中至多出现 10 次。
输出格式
第一行输出 Bob 删除后剩余部分的长度。第二行输出剩余的所有"字母"(用空格隔开)。
6
1 2 3 1 2 3
3
1 2 3
7
4 5 6 5 6 7 7
1
7