字典序
来源:互联网 发布:软件测试书籍下载 编辑:程序博客网 时间:2024/06/05 12:44
题目:
维塔利是一个勤奋的学生,在大学阶段,他从来没有逃过一堂课。他总是按时做作业,并顺利通过考试。
在最后一节课,老师给了他两个字符串s和t。这两个字符串的长度相同,由小写英文字母组成,字符串s的字典序比串t小。维塔利想知道是否有这样的字符串:字典序比字符串s大,同时字典序小于串t。此字符串也应包括小写英文字母和相同的长度。
让我们帮维塔利解决这个简单的问题!
Input
第一行包含字符串s(1≤|s| ≤100),由小写英文字母组成。这里,|s| 表示字符串s的长度。
第二行包含字符串t(|t|=|s| ),由小写英文字母组成。
保证字符串s和t的长度是相同的,字符串s字典顺序小于字符串t。
Output
如果满足要求的字符串不存在,则输出No such string。
如果这样的字符串存在,就输出任何一个满足条件的字符串。( 也只能由小写英文字母a-z组成)
Sample Input
输入样例1:
a
c
输入样例2:
aaa
zzz
输入样例3:
abcdefg
abcdefh
Sample Output
输出样例1:
b
输出样例2:
kkk
输出样例3:
No such string
解题思路:
只需要找出比s字典序大一且小于t字典序的字符串即可,若没有就输出No such string,这里需要注意的一点是,对字典序加一的理解:
例如:s串为az;t串为bc;那么它们之间的串为ba,而不是bz;
s串加一时,如遇到z字符要对z字符特殊处理,不能让z字符直接加一,应该将本位变为a字符,向前进一位;
代码如下:
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char a[200],b[200];
while(~scanf("%s%s",a,b)){
int l=strlen(a);
while(a[--l]=='z') a[l]='a'; //处理z字符;
a[l]+=1;
if(strcmp(a,b)<0)printf("%s\n",a);// 若该字符串仍小于 t 则输出
else printf("No such string\n");
}
return 0;
}
0 0
- 字典序
- 字典序
- 字典序
- 字典序
- 字典序
- 字典序
- 字典序
- 字典序
- NEUOJ 719 (字典树 字典序)
- 字典序生成组合
- 字典序问题
- 再论字典序
- 字典序全排列
- 深搜 字典序
- 字典序集合
- 字典序法
- 字典序全排列
- 字典序问题
- Android将第三方apk文件编译生成到system.img中
- EXECUTORSERVICE线程池讲解
- 高压缩空间占用的 Hyper LogLog 算法
- 日志搜集处理框架------[Logstash]使用详解
- 菜鸟级入门学习maven的使用,很实用的入门教程
- 字典序
- Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
- Nginx
- 文章标题
- mark
- 微信客服我是这样集中管理的
- Webpack+react-router 报 Cannot read property 'toUpperCase' of undefined
- iOS开发系列--地图与定位
- 浏览器内核以及私有前缀