1155: 字符串比较 多实例
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 361 Solved: 155
Description
比较字符串大小,但比较的规则不同字典序规则。字符比较新规则如下:A < a < B < b < ………… < Z < z。
Input
输入数据包含多个测试实例,每个测试实例占两行,每一行有一个字符串(只包含大小写字母, 长度小于10000)。
Output
如果第一个字符串小于第二个,输出YES,否则,输出NO。
注意:A < a < B < b < ………… < Z < z。
Sample Input
abcBbcAbaABcefABce
Sample Output
YESYESNO
HINT
Source
一些细节要注意。比如 a与A,A与a, lena 与lenb的长度,当然对我这个程序而言……
#include<iostream> #include<string.h> #include<stdio.h> using namespace std; char a[10000],b[10000]; int main() { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); while(scanf("%s%s",&a,&b)!=EOF) { int lena,lenb,i,temp; lena=strlen(a); lenb=strlen(b); if(strcmp(a,b)==0) { cout<<"NO"<<endl; } else { if(lena>lenb) temp=lena; else temp=lenb; for(i=0;i<temp;i++) { if(a[i]==b[i]) continue; else { if(a[i]>='a'&&a[i]<='z' &&b[i]>='a'&&b[i]<='z' ||a[i]>='A'&&a[i]<='Z' &&b[i]>='A'&&b[i]<='Z') { if(a[i]<b[i]) { cout<<"YES"<<endl; break; } else { cout<<"NO"<<endl; break; } } else if(a[i]>='a' &&a[i]<='z' &&b[i]>='A'&&b[i]<='Z') { if(a[i]-32<b[i]) { cout<<"YES"<<endl; break; } else { cout<<"NO"<<endl; break; } } else if(a[i]>='A' &&a[i]<='Z' &&b[i]>='a'&&b[i]<='z') { if(a[i]+32<=b[i]) { cout<<"YES"<<endl; break; } else { cout<<"NO"<<endl; break; } } else { if(a[i]<b[i]) { cout<<"YES"<<endl; break; } else { cout<<"NO"<<endl; break; } } } } } } return 0; }
时间: 2024-08-02 04:40:39