CodeForeces 665C Simple Strings
2 seconds
256 megabytes
standard input
standard output
zscoder loves simple strings! A string t is
called simple if every pair of adjacent characters are distinct. For example ab, aba,zscoder are
simple whereas aa, add are not simple.
zscoder is given a string s. He
wants to change a minimum number of characters so that the string s becomes simple. Help him with this task!
The only line contains the string s (1 ≤ |s| ≤ 2·105)
— the string given to zscoder. The string s consists
of only lowercase English letters.
Print the simple string s' — the string s after
the minimal number of changes. If there are multiple solutions, you may output any of them.
Note that the string s' should also consist of only lowercase English letters.
aab
bab
caaab
cabab
zscoder
zscoder
把重复的区间找出来,隔一个变一个。
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#include <math.h>
#include <stdio.h> using namespace std;
#define MAX 100000
int len[2*MAX+5];
char a[2*MAX+5];
int main()
{
scanf("%s",a);
int l=strlen(a);
len[l-1]=1;
for(int i=l-2;i>=0;i--)
{
len[i]=1;
if(a[i]==a[i+1])
len[i]+=len[i+1];
}
for(int i=0;i<l;i)
{
if(len[i]!=1)
{
for(int j=i+1;j<=i+len[i]-1;j+=2)
{
if(j==i+len[i]-1)
{
for(int p=0;p<26;p++)
{
if(('a'+p)==a[i]||('a'+p)==a[j+1])
continue;
a[j]='a'+p;
break;
}
}
else
a[j]=(a[i]=='z'?a[i]-1:a[i]+1);
}
i=i+len[i];
}
else
i++;
}
for(int i=0;i<l;i++)
{
printf("%c",a[i]);
} cout<<endl;
return 0;
}
CodeForeces 665C Simple Strings的更多相关文章
- codeforces 665C Simple Strings
相同的一段字母变一下就可以. #include<cstdio> #include<cstring> #include<cmath> #include<vect ...
- Codeforces 665C Simple Strings【暴力,贪心】
题目链接: http://codeforces.com/contest/665/problem/C 题意: 改变最少的字符,使得最终序列无相同的连续的字符. 分析: 对每一个与前一个字符相同的字符,枚 ...
- codeforces 665C C. Simple Strings(乱搞)
题目链接: C. Simple Strings time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- Educational Codeforces Round 12 C. Simple Strings 贪心
C. Simple Strings 题目连接: http://www.codeforces.com/contest/665/problem/C Description zscoder loves si ...
- Codeforce-Ozon Tech Challenge 2020-B. Kuroni and Simple Strings(贪心)
B. Kuroni and Simple Strings time limit per test1 second memory limit per test256 megabytes inputsta ...
- Using FreeMarker templates (FTL)- Tutorial
Lars Vogel, (c) 2012, 2016 vogella GmbHVersion 1.4,06.10.2016 Table of Contents 1. Introduction to F ...
- 玩转spring boot——properties配置
前言 在以往的java开发中,程序员最怕大量的配置,是因为配置一多就不好统一管理,经常出现找不到配置的情况.而项目中,从开发测试环境到生产环境,往往需要切换不同的配置,如测试数据库连接换成生产数据库连 ...
- C专家编程 总结
1 类型转换 当执行算术运算时,操作数的类型如果不同,就会发生转换,数据类型一般朝着浮点精度高.长度更长的方向转换,整数型如果转换为signed不会丢失信息,就转换为signed,否则转换为unsig ...
- jgroup 概述--官方文档
原文地址:http://www.jgroups.org/manual/html/ch01.html# Chapter 1. Overview 1.1. Channel 1.2. Building Bl ...
随机推荐
- 自制MVC框架的插件与拦截器基础
上篇谈到我自己写的MVC框架,接下来讲讲插件及拦截器! 在处理一些通用的逻辑最好把它封装一个插件或者拦截器,以便日后可以直接拿过来直接使用.在我的框架中可以通过继承以下抽象类来实现插件或者拦截器. 1 ...
- OpenSSL生成证书详解 如何使用OpenSSL生成自签证书 转载
原文:http://my.oschina.net/fajar/blog/425478 使用OpenSSL生成自签证书(亲测) 一,前言 读过我博客的小伙伴儿都知道,我一般在前言里面会提到为什么写这篇博 ...
- Hibernate 操作 oracle数据库,报错总结
1.ORA-00957: 重复的列名 错误信息如下: Hibernate: insert into T_RESOURCE (NAME, NUM, PARENT_FLAG, PARENT_ID, id, ...
- Vue 中的生命周期和钩子函数
生命周期: beforeCreate:el 和 data 并未初始化 (此方法不常用) created:完成了 data 数据的初始化,el的初始化未完成.用来发送ajax beforeMount:( ...
- Spring Boot(三):logback打印日志
springboot对logback的支持是非常好的,不需要任何配置,只需要在resource下加logback.xml就可以实现功能直接贴代码: <?xml version="1.0 ...
- 【剑指offer】Q17:合并两个排序的链表
def Merge(head1, head2): if head1 == None: return head2 if head2 == None: return head1 psuhead = Lis ...
- android studio - 修改logcat颜色字体
修改logcat 颜色 (1) 在Android Studio 菜单栏 打开 Preferences -> Editer -> Colors & Fonts -> Andr ...
- python之读取Excel 文件
# -*- coding: utf-8 -*- """ Created on Thu May 24 13:53:10 2018 @author: Frank " ...
- 蓝牙(CoreBluetooth)-概述
蓝牙(CoreBluetooth)-概述 通过此框架可以让你的Mac和iOS应用程序与外部蓝牙设备通信 外部设备: 就是需要通过iOS App控制器的其他设备: 例如:心率检测仪.数字温控器 蓝牙通讯 ...
- iOS9 3DTouch、ShortcutItem、Peek And Pop技术一览
[iOS]iOS9 3DTouch.ShortcutItem.Peek And Pop技术一览 3DTouch UITouch类里API的变化 iOS9中添加的属性 altitudeAngle 当 ...