题干:

给定一个字符串S,每次操作你可以将其中任意一个字符修改成其他任意字符。

请你计算最少需要多少次操作,才能使得S中不存在两个相邻的相同字符。

Input

只包含小写字母的字符串S。

1 ≤ |S| ≤ 100000

Output

一个整数代表答案

Sample Input

aab

Sample Output

1

解题报告:

考虑对于s[i]字符,如果改变,则会影响到s[i-1] 和 s[i+1],所以我们考虑aab和aaa的情况。不难发现我们改变中间那个字符为任意值就可以了。。。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
char s[MAX];
int main()
{int ans = 0;cin>>s;int len = strlen(s);for(int i = 0; i<len; i++) {if(s[i] == s[i+1]) {s[i+1] ='@';ans++;}} printf("%d\n",ans);return 0 ;}

【HihoCoder - 1850】字母去重 (字符串,思维)相关推荐

  1. c语言字母去重,字符串去重C语言实现

    字符串去重经常会考的笔试题目,这里列出几种常用的方法 解法一:取第一个字符然后遍历后面所有字符,若有重复的则将后面的字符设置为'\0' //将重复字符设置为'\0' void RemoveDuplic ...

  2. 【SQL开发实战技巧】系列(十二):三问(如何对字符串字母去重后按字母顺序排列字符串?如何识别哪些字符串中包含数字?如何将分隔数据转换为多值IN列表?)

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  3. 从字母数字字符串中提取数字

    http://office.microsoft.com/zh-cn/excel-help/HA001154901.aspx 本文的作者是 Ashish Mathur,是一位 Microsoft MVP ...

  4. 请编写一个程序,请将字符串中所有字母全部向后移一位,最后一个字母放在字符串的开头,最后将新的字符串输出。

    请编写一个程序,请将字符串中所有字母全部向后移一位,最后一个字母放在字符串的开头,最后将新的字符串输出. ran = [] result = "" old_str = input( ...

  5. 如何生成随机的字母数字字符串?

    我一直在寻找一种简单的 Java算法来生成伪随机的字母数字字符串. 在我的情况下,它将用作唯一的会话/密钥标识符,在"超过500K+世代中"可能"是唯一的(我的需求实际上 ...

  6. 输出字母在字符串中位置索引 python

    7-1 输出字母在字符串中位置索引 (10 分) 输入一个字符串,再输入两个字符,求这两个字符在字符串中的索引. 输入格式: 第一行输入字符串 第二行输入两个字符,用空格分开. 输出格式: 从右向左输 ...

  7. Java实现字母去重

    描述 给定一个字符串S,每次操作你可以将其中任意一个字符修改成其他任意字符. 请你计算最少需要多少次操作,才能使得S中不存在两个相邻的相同字符. 输入 只包含小写字母的字符串S. 1 ≤ |S| ≤ ...

  8. html正则表达式验证字母,正则表达式校验字母和字符串组合

    本文中的正则表达式均是从网上获得,只是在这里做一个整合记录. 1.只包含字母及数字(6位以上) var reg = new RegExp('^[a-zA-Z0-9]{6,}$'); if(!reg.t ...

  9. 对只含英文字母的字符串按字母顺序排序,相同的字母大写在前,小写在后

    对只含英文字母的字符串按字母顺序排序,相同的字母大写在前,小写在后 如 AxcBsYuC 排序得 ABCcxY 提示:利用map实现自定义的ascii码表.再用冒泡法排序. 在这里插入代码片 publ ...

最新文章

  1. 计算机浙大网java网站,网络课程—非计算机专业JAVA程序设计语言
  2. 分布式理论:CAP理论
  3. c语言逆序输出6A8F,【C语言】将二进制数逆序输出。比如6为000...0110,逆序后为0110....
  4. php 读取mysql 二维数组_PHP操作 二维数组模拟mysql函数
  5. B树、B-树、B+树、B*树都是什么
  6. 一位华为底层老员工的中年危机,发人深思!
  7. tomcat 日志配置
  8. 成都链安科技CEO 创始人杨霞:解决智能合约的安全问题,形式化验证是个“利器”!
  9. cad动态块制作翻转_cad创建动态块实例教程:翻转参数和动作的应用的介绍
  10. NYOJ-108-士兵杀敌(一)
  11. 如何使用启动盘PE桌面工具安装原版win7系统?
  12. 10个最佳WordPress Star Rating插件
  13. 服务器虚拟机ping不通百度,未知的名称或服务,解决方法
  14. 高中数学:求数列通项公式的十一种方法(方法全,例子全,归纳细)
  15. 物联网通信技术原理第3章 近距离无线通信技术
  16. Redis Manager 2020.7 安装问题(RDM 2020.7)
  17. dz论坛数据库php网址,discuz论坛更换域名,搬家步骤
  18. FusionCharts绘图插件详解
  19. 汽车充电系统开发解决方案
  20. 追踪tcp得到php一句话菜刀连接即可,强大的PHP一句话后门

热门文章

  1. java 面板 选择颜色_[代码全屏查看]-java颜色选择器
  2. redis存储数据类型_Redis与Memcahe的区别最全整理
  3. matlab窗函数带通滤波器,Matlab结合窗函数法设计数字带通FIR滤波器
  4. python群发短信脚本_python实现zabbix发送短信脚本
  5. java I O类大全_Java I/O最简单的几个类
  6. 如何查询oracle的共享内存,[20190104]ipcs查看共享内存段.txt
  7. mysql分布式一致性hash_分布式哈希一致性
  8. 上传本地项目到gitee_用git上传本地文件到码云gitee的方法
  9. python画图模块_学习python画图模块plotnine:第一步安装
  10. Navicat Error 2003 - can't connect to mysql server 'localhost' (10061)