标签: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