题目链接:

http://codeforces.com/problemset/problem/708/A

题目大意:

从字符串s中挑选出一个子串(非空),将该子串中的每个字母均替换成前一个字母,如'b'换成'a','c'换成'b',以此类推,特别的,'a'要换成'z',问经过一次转换之后,字典序最小的字符串s为多少.注意“exactly one non-empty substring”这就意味着全'a'串也要变,即字符串"aaa",替换其中的字母(会使得字典序比原来大),但又要使字典序最小,所以只能将最后一个'a'->'z'==》字串变为“aaz”

解题思路:

代码可以解释解题思路

 #include<bits/stdc++.h>
using namespace std;
char ca[];
int main()
{
int i,k;
while(~scanf("%s",ca))
{
k=;
for(i=; ca[i]!='\0'; i++)
if(ca[i]!='a')break;
for(; ca[i]!='\0'; i++)
{
if(ca[i]=='a')break;
ca[i]--;
k=;
}
if(!k)ca[strlen(ca)-]='z';
puts(ca);
}
return ;
}

第一次 for 如果 s[i]!=a 则break,如果 s[i]==a 则不对原数组改变,向后扫描(有一个k作为标识)

第二次for 一直扫描到尾,如果 !=a  则让该字符 s[i]-- ,同时作为标识的 k++,如果==a 则说明 a之前的数据已经处理完毕,已处理完“字串”,break,即可

判断标识,输出结果

举三个例子:

1.

输入:codeforces 输出:bncdenqbdr

k=0;i=0;

第一次 for

  s[0] != a; break;

第二次 for

   ---一直没有等于a 的则将每个数都s[i]--;k++

if(!k)--  //k为非0 不执行 if 语句

输出 s即可

2.

输入:abacaba 输出:aaacaba

k=0;i=0;

第一次 for s[0]=='a'; s[0]不变

     s[1]!=a; i=1;break;

第二次 for i=1

    s[1]!=a; s[1]--;k++; //s[1]-- 其值原为 'b' 减减为 ‘a’

    s[2]==a;break;//字串已处理结束,字串为“b”一个字符

if(!k)--  //k为非0 不执行 if 语句

输出 aaacaba

3.

输入:aaaa 输出:aaaz

k=0;i=0

第一次 for s[0]=='a'; s[0]不变

     s[1]==‘a’;  s[1] 不变

      ...

     s[4]=='\0' 跳出循环

第二次 for i=4 ;s[4]!='\0';//循环失效,不执行循环体

if(!k)--  //k为0 执行 if 语句 s[sizof(s)-1]='z';//sizeof(s)=4,s[3]='z';

输出 aaaz;

Codeforces Problem 708A Letters Cyclic Shift的更多相关文章

  1. Codeforces 708A Letters Cyclic Shift

    A. Letters Cyclic Shift time limit per test:1 second memory limit per test:256 megabytes input:stand ...

  2. codeforces 709C C. Letters Cyclic Shift(贪心)

    题目链接: C. Letters Cyclic Shift 题意: 现在一串小写的英文字符,每个字符可以变成它前边的字符即b-a,c-a,a-z这样,选一个字串变换,使得得到的字符串字典序最小; 思路 ...

  3. 【codeforces 709C】Letters Cyclic Shift

    [题目链接]:http://codeforces.com/contest/709/problem/C [题意] 让你改变一个字符串的子集(连续的一段); ->这一段的每个字符的字母都变成之前的一 ...

  4. AIM Tech Round 3 (Div. 1) A. Letters Cyclic Shift 贪心

    A. Letters Cyclic Shift 题目连接: http://www.codeforces.com/contest/708/problem/A Description You are gi ...

  5. CodeForces 709C Letters Cyclic Shift (水题)

    题意:给定一个字符串,让你把它的一个子串字符都减1,使得总字符串字典序最小. 析:由于这个题是必须要有一个字串,所以你就要注意这个只有一个字符a的情况,其他的就从开始减 1,如果碰到a了就不减了,如果 ...

  6. CodeForces 709C Letters Cyclic Shift

    贪心. 肯定是两个$a$之间的那些字符都$-1$,没有$a$就全部$-1$.如果输入的串全是$a$,那么把最后一个$a$改成$z$. #pragma comment(linker, "/ST ...

  7. CF708A Letters Cyclic Shift 模拟

    You are given a non-empty string s consisting of lowercase English letters. You have to pick exactly ...

  8. Codeforces Round #385 (Div. 2) A. Hongcow Learns the Cyclic Shift 水题

    A. Hongcow Learns the Cyclic Shift 题目连接: http://codeforces.com/contest/745/problem/A Description Hon ...

  9. Largest Smallest Cyclic Shift

    Largest Smallest Cyclic Shift 题目来源: Atcoder Code Festival 2017 Qual B Problem F 题目大意: 有\(X\)个字符'a',\ ...

随机推荐

  1. 我的一个小作品 android App ---校园资讯助手

        软件主界面采用Fragment+ViewPager组成.在点开后将会自动对学校新闻页面使用URl类来抓取,然后对网页中的信息提取,使用WebView来loadData在主界面上面显示, 为了使 ...

  2. MySQL的热备percona-xtrabackup、innobackupex的安装方法

    http://blog.csdn.net/dbanote/article/details/13295727 http://blog.csdn.net/yangzhawen/article/detail ...

  3. [转]JAVA设计模式之单例模式

    原文地址:http://blog.csdn.net/jason0539/article/details/23297037 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主 ...

  4. 【CodeForces 697B】Barnicle

    对科学计数法表示的数,输出其10进制的形式. c++来做,需要考虑这些细节: 当b==0,d==0时,只输出a. 当不需要补零的情况有两种: 一种是刚好是整数,只输出a(注意1.0e1的情况是输出1) ...

  5. Subversion详解

    Subversion特性 1.版本化目录 可以跟踪目录树的变更.文件和目录都是版本化的,SVS只能跟踪单个文件: 2.精确的文件跟踪 可以对文件和目录进行 增加.复制.改名,解决了同名 而 无关的文件 ...

  6. Hadoop 学习笔记3 Develping MapReduce

    小笔记: Mavon是一种项目管理工具,通过xml配置来设置项目信息. Mavon POM(project of model). Steps: 1. set up and configure the ...

  7. Java多线程与并发库高级应用-传统定时器技术回顾

    传统定时器技术回顾(jdk1.5以前) public class TraditionalTimerTest { static int count = 0; public static void mai ...

  8. 编译hadoop-2.5.2总结

    原文:http://www.cnblogs.com/qigang/p/4194728.html 一.准备的资料 64位linux系统.我使用的是 CentOS JDK 1.7+.注:使用1.7即可,如 ...

  9. win10前面板耳机没声音

    首先去装Relteck的驱动,windows64位的下载地址是: http://12244.wpc.azureedge.net/8012244/drivers/rtdrivers/pc/audio/0 ...

  10. 【BZOJ-1863】trouble 皇帝的烦恼 二分 + DP

    1863: [Zjoi2006]trouble 皇帝的烦恼 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 559  Solved: 295[Submit] ...