编程题
### 问题描述 小秋很喜欢在某平台上看一些商家推荐。 一天小秋看到有一家商铺的好评非常多,想去体验一下,于是他高高兴兴地去了那家商铺。不出意外的话还是出意外了。那家商铺对小秋来说简直是噩梦,和平台上的好评完全相反。小秋认为这个商家的评论有问题,很可能是通过某种刷评论软件刷的。 在反复查看商家的评论后,小秋发现,在后面的评论中,经常出现和前面一模一样的评论。 因此,小秋做了如下推断:假设把商家现在的评论看成一个只包含小写字母的字符串 $s$,$s$ 是通过一个空字符串 $t$,经过若干次下列操作得到的: 1. 在 $t$ 末尾添加任意一个小写字母; 2. 在 $t$ 末尾添加 $t$ 任意长度的前缀; 小秋现在想知道,对于一个商家的评论 $s$,由一个空字符串得到最少需要多少次上述操作。 如果计算得到的操作数量过小,那么商家的评论肯定就是刷的,就可以去举报了。你只需要帮小秋求出这个最小操作数量。 ### 输入格式 输入仅一行,一个只包含小写字母的字符串 $s$。 ### 输出格式 输出仅一行,一个整数表示由空字符串得到 $s$ 的最少操作数量。 ### 样例输入 ``` ababa ``` ### 样例输出 ``` 4 ``` ### 说明 * 第 $1$ 次操作,在字符串末尾添加一个字符 $a$,得到字符串 $\text{a}$; * 第 $2$ 次操作,在字符串末尾添加一个字符 $b$,得到字符串 $\text{ab}$; * 第 $3$ 次操作,在字符串末尾添加前缀 $\text{ab}$,得到字符串 $\text{abab}$; * 第 $4$ 次操作,在字符串末尾添加一个字符 $a$,得到字符串 $\text{ababa}$。 ### 评测数据规模 对于 $20$% 的评测数据,$1 \leq |s| \leq 10^3$; 对于 $40$% 的评测数据,$1\leq |s| \leq 10^5$; 对于 $100$% 的评测数据,$1 \leq |s| \leq 10^6$。
查看答案
赣ICP备20007335号-2