题目描述
比较字符串大小,但比较的规则不同字典序规则。字符比较新规则如下:A < a < B < b < ………… < Z < z。
输入
输入数据包含多个测试实例,每个测试实例占两行,每一行有一个字符串(只包含大小写字母, 长度小于10000)。
输出
如果第一个字符串小于第二个,输出YES,否则,输出NO。
注意:A < a < B < b < ………… < Z < z。
样例输入 Copy
<span style="color:#333333"><span style="color:#333333">abc
Bbc
Ab
a
ABcef
ABce
</span></span>
样例输出 Copy
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<cmath>
#include<iomanip>
#include<algorithm>
using namespace std;
int main(void){//转换成double
char a[11000],b[10100];
while(scanf("%s %s",a,b) != EOF){
double num1,num2;
int len = strlen(a) < strlen(b) ? strlen(b) : strlen(a);
for(int i = 0;;i++){
if(a[i] >= 'A' && a[i] <= 'Z')
num1 = int(a[i] - 'A') - 0.5;
else if(a[i] >= 'a' && a[i] <= 'z')
num1 = int(a[i] - 'a');
else
num1 = -1; // 通过限制尾数是其完全相同时也比num2大。
if(b[i] >= 'A' && b[i] <= 'Z')
num2 = int(b[i] - 'A') - 0.5;
else if(b[i] >= 'a' && b[i] <= 'z')
num2 = int(b[i] - 'a');
else
num2 = -2;
if(num1 > num2){
cout << "NO" << endl;
break;
}
else if(num1 < num2){
cout << "YES" << endl;
break;
}
}
memset(a,'\0',sizeof(a));
memset(b,'\0',sizeof(b));
}
return 0;
}