编程题
### 问题描述 小智是一个年轻的宝可梦训练师,他来到一个由 $n$ 个公寓组成的大楼,这些公寓从左到右排列。每个公寓都可以从街上进入,也可以从里面出去。每个公寓都与左边的公寓和右边的公寓相连。公寓 $1$ 只与公寓 $2$ 相连,公寓 $n$ 只与公寓 $n-1$ 相连。 每个公寓里都有一只不同种类的宝可梦。小智想进入这些公寓抓一些宝可梦。征得居民的同意之后,他可以从街上进入某个公寓,依次进入若干个相邻的公寓,最后从其中一个公寓出去。但是他不能多次进入同一个公寓。 小智非常高兴,他想知道最少需要进入多少个公寓,才能抓到这栋大楼中所有种类的宝可梦。请你帮他计算这个最小值。 ### 输入格式 第一行一个整数 $n$,表示大楼中公寓的数量。 第二行包含 $n$ 个字符,每个字符为英文字母(区分大小写),表示对应公寓中的宝可梦种类。 ### 输出格式 输出一个整数,表示小智最少需要进入的公寓数量。 ### 样例输入 ```txt 6 abacbc ``` ### 样例输出 ```txt 4 ``` ### 样例说明 小智可以从第 $1$ 个公寓进入,然后依次进入第 $2$、$3$、$4$ 个公寓,最后从第 $4$ 个公寓出去。在这个过程中,他可以抓到所有种类的宝可梦,所以最少只需要进入 $4$ 个公寓。 ### 评测数据规模 对于 $100$% 的评测数据,$1 \le n \le 10^5$。
查看答案
赣ICP备20007335号-2