#53. 01串
01串
当前没有测试数据。
题目背景
chh在某码源的周赛做题时,被某题恶心到了
不能只有我被恶心!
于是,你即将被恶心
题目描述
给定一个长度为 的二进制字符串 。字符串中的每个字符均为 或 。 你可以进行若干次操作。每次操作按以下步骤进行: 选择并删除当前字符串最左端或最右端的一个字符; 如果被删除的字符是 ,则将剩余字符串中的所有字符翻转,即把每个 变为 ,把每个 变为 ;如果被删除的字符是 ,则不进行翻转。 你可以随时停止操作。请问,至少需要进行多少次操作,才能使剩余字符串中的所有字符均为 ? 特别地,空字符串也视为满足条件。如果初始字符串中的所有字符均为 ,则可以不进行任何操作。 格式
输入格式
第一行包含一个整数 ,表示字符串 的长度。 第二行包含一个长度为 的二进制字符串 。 输出格式
输出一行,包含一个整数,表示使剩余字符串中的所有字符均为 所需的最少操作次数。 样例
3
110
2
样例解释 #1
先删除最右端的 ,此时字符串变为 ;再删除最左端的 ,并将剩余的 翻转为 。两次操作后,剩余字符串为 。 进行至多一次操作无法使剩余字符串中的所有字符均为 ,因此答案为 。
3
101
3
样例解释 #2
无论前两次操作分别删除哪一端的字符,操作后剩余的唯一字符都是 $$,因此至少需要三次操作。删除全部字符后得到空字符串,满足条件。 数据规模
100% 的数据,满足 , 的长度为 ,且 中的每个字符均为 或 。