比如下面这道题,要求1s,但我的代码用时1.5s左右。大佬们想借这道题说,或者直接上干货,分享下关于缩短时间的窍门,我都万分感激!
题目描述
比较字符串大小,但比较的规则不同字典序规则。字符比较新规则如下: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>
int main()
{
char fa[10000],fb[10000],ch,dh;
double a,b;
int i,loa,lob,t;
while(1)
{
memset(fa,'\0',sizeof(fa));
memset(fb,'\0',sizeof(fb));//归零
scanf("%s%s",&fa,&fb);
loa=strlen(fa);
lob=strlen(fb);
t=(loa>lob?loa:lob);//t为较大值
for(i=0;i<t;i++)
{
ch=fa[i],dh=fb[i];
if(ch>='a'&&ch<='z')
a=ch-31.5;
else a=ch;
if(dh>='a'&&dh<='z')
b=dh-31.5;
else b=dh;
if(a==b)
continue;
if(a>b)
{
printf("NO\n");
break;
}
else
{
printf("YES\n");
break;
}
}
}
return 0;
}