标签:cpp ++i 数组 des ++ har else strong head
hihocoder-1850-字母去重
给定一个字符串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); } } }
标签:cpp ++i 数组 des ++ har else strong head
原文地址:https://www.cnblogs.com/zhang-yd/p/9795157.html