解题思路:
题目给的转换只有1-26的数字才能被转换,基于这个思路,而且要求是字典序最大的字符串,
用char类型数组存放输入,对每个元素进行遍历,如果每两个相邻的元素组成的两位数小于26,就把这两位数转换,除非组成的两位数大于26,才考虑对一位数进行转换,这样输出的字符就会是字典序最大
注意事项:
参考代码:
#include<stdio.h> int main() { char a[200000]; scanf("%s",a); char *p=a;//用指针遍历 while(*p!='\0') { int c=*p-'0';//个位 int b=c*10+(*(p+1)-'0');//在前的元素是十位,要注意 if(b<=26&&*(p+1)!='\0')//防止加上了空,出现乱码 { printf("%c",'A'+b-1); p++; } else printf("%c",'A'+c-1); p++; } return 0; }
0.0分
0 人评分
C二级辅导-同因查找 (C语言代码)浏览:556 |
假币问题 (C语言代码)浏览:2658 |
点我有惊喜!你懂得!浏览:2754 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:590 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
DNA (C语言描述,蓝桥杯)浏览:1653 |
【偶数求和】 (C语言代码)浏览:460 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:523 |
C二级辅导-分段函数 (C语言代码)浏览:659 |
C二级辅导-统计字符 (C语言代码)浏览:514 |