1155: 字符串比较 多实例
时间限制: 1 Sec 内存限制: 128 MB
提交: 5535 解决: 2345
[状态] [讨论版] [提交] [命题人:admin]
题目描述
比较字符串大小,但比较的规则不同字典序规则。字符比较新规则如下:A < a < B < b < ………… < Z < z。
输入
输入数据包含多个测试实例,每个测试实例占两行,每一行有一个字符串(只包含大小写字母, 长度小于10000)。
输出
如果第一个字符串小于第二个,输出YES,否则,输出NO。
注意:A < a < B < b < ………… < Z < z。
样例输入 Copy
abc
Bbc
Ab
a
ABcef
ABce
样例输出 Copy
YES
YES
NO
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<limits.h>
int cmp(char a[],char b[]);
int main()
{
char a[10005],b[10005];
while(scanf("%s %s",a,b)!=EOF)
{
if(cmp(a,b)==1)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
int cmp(char a[],char b[])
{
int i,len1,len2;
len1=strlen(a);
len2=strlen(b);
for(i=0;i<len1;i++)
{
if(a[i]==b[i]+32||a[i]==b[i]-32)
{
if(a[i]<b[i])
return 1;
if(a[i]>b[i])
return 0;
}
else
{
if(a[i]>='A'&&a[i]<='Z')
a[i]=a[i]+32;
if(b[i]>='A'&&b[i]<='Z')
b[i]=b[i]+32;
if(a[i]<b[i])
return 1;
if(a[i]>b[i])
return 0;
}
}
if(len1==len2)
return 0;
else
return 1;
}