翻硬币
题号:NC230834
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小龙很喜欢玩翻转硬币,今天他在桌面上摆了一排正面朝上的硬币,每次操作可以把连着一段硬币变成全部正面朝上或者全部背面朝上,小龙想知道如果要将这些硬币通过这个操作翻转成一个目标状态,最少要翻转多少次。这个问题对于小龙这个懒狗来说太麻烦了,想让你设计一个程序帮助他得到答案

输入描述:

输入有两行,第一行包含一个整数 ,表示桌面上硬币个数。
第二行一个字符串表示我们想要的硬币状态朝上的情况,1代表正面朝上,0代表背面朝上。

输出描述:

输出一个整数,表示最少操作次数。
示例1

输入

复制
3
101

输出

复制
1
示例2

输入

复制
3
010

输出

复制
2