码迷,mamicode.com
首页 > 其他好文 > 详细

hihocoder-1850-字母去重

时间:2018-10-16 02:08:58      阅读:477      评论:0      收藏:0      [点我收藏+]

标签:cpp   ++i   数组   des   ++   har   else   strong   head   

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);
	}
 	} 
} 

  

 

hihocoder-1850-字母去重

标签:cpp   ++i   数组   des   ++   har   else   strong   head   

原文地址:https://www.cnblogs.com/zhang-yd/p/9795157.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!