hihocoder-1850-字母去重
hihocoder-1850-字母去重
#1850 : 字母去重
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
给定一个字符串S,每次操作你可以将其中任意一个字符修改成其他任意字符。
请你计算最少需要多少次操作,才能使得S中不存在两个相邻的相同字符。
输入
只包含小写字母的字符串S。
1 ≤ |S| ≤ 100000
输出
一个整数代表答案
- 样例输入
-
aab
- 样例输出
-
1
题解:
一道很简单的题目,只需要对数组进行扫一遍,判断每段重复的数组长度就可以了。
#include <cstdio> #include <cstring> #include <cstdlib> const int MAXN = 100000 + 10; int main(){ char ch[MAXN]; while(scanf("%s", ch)!=EOF){ if(strlen(ch) <= 1){ printf("0\n"); }else{ int cnt = 1, ans =0; for(int i=1; i<strlen(ch); ++i) { if(ch[i]==ch[i-1]){ cnt++; }else{ if(cnt > 0){ ans += cnt/2; } cnt = 1; } } ans += cnt/2; printf("%d\n", ans); } } }