4485:雪国键盘侠

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:0 解决:0

题目描述

# 雪国键盘侠 ## 题目背景 在遥远的雪国,键盘侠们正在参加一年一度的打字比赛。比赛场地是一个巨大的冰面,上面有 $n$ 个格子排成一排,每个格子上都放着一个字母键。键盘侠小冰需要从第 $1$ 个格子出发,依次按下所有格子上的字母键,最终到达第 $n$ 个格子。 ## 题目描述 每个格子 $i$ 上有一个小写字母 $c_i$。小冰在移动时,如果从格子 $i$ 移动到格子 $j$ ($i < j$),他会打出从 $i$ 到 $j$ 所有格子上的字母(包括 $i$ 和 $j$),形成一个字符串。 但是,小冰的键盘有一个特殊规则:**连续打出的相同字母会被合并成一个**。例如,打出的字母序列是 `"a a b b a"`,实际显示为 `"a b a"`。 小冰想知道,当他从第 $1$ 个格子出发,必须经过所有格子(即依次访问格子 $1, 2, ..., n$)时,最终屏幕上显示的结果字符串**最短可能长度**是多少? ## 输入格式 输入共两行。 第一行一个整数 $n$,表示格子的数量。 第二行一个长度为 $n$ 的字符串 $s$,其中第 $i$ 个字符 $s_i$ 表示格子 $i$ 上的字母。字符串仅由小写英文字母组成。 ## 输出格式 输出一个整数,表示最终屏幕上显示的结果字符串的最短可能长度。 ## 样例 输入: ``` 7 aabbbca ``` 输出: ``` 4 ``` 解释: 格子上的字母依次为 `a, a, b, b, b, c, a`。 小冰必须依次经过所有格子,所以他会打出所有字母 `a a b b b c a`。 根据规则,连续相同字母合并:`a a` -> `a`,`b b b` -> `b`,`c` -> `c`,最后的 `a` 单独。 合并后得到 `a b c a`,长度为 4。 ## 数据范围 - 对于 30% 的数据:$1 \le n \le 100$,且字符串中只包含字母 `a` 和 `b`。 - 对于 60% 的数据:$1 \le n \le 1000$。 - 对于 100% 的数据:$1 \le n \le 10^5$。 ## 提示 小冰必须按顺序访问所有格子,所以他会打出整个字符串 $s$。问题转化为:给定字符串 $s$,将其中**所有连续出现的相同字母**视为一个字母,求这样处理后字符串的长度。

输入

输出

提示