CSL的英语考试

链接:https://ac.nowcoder.com/acm/contest/551/B
来源:牛客网

CSL 为了备战即将到来的六级考试,在外面报了一个英语培训班。经过了一学期的学习后,英语老师决定要对 CSL 的学习成果进行检测。老师准备了一份卷子,考虑到 CSL 的英语水平,卷子上只有 n 道判断题,题目是比较两个英语单词的大小。
两个单词的大小是用其字典序来衡量的。所谓字典序就是<`a'<`b'<`c'`x'<`y'<`z'空字符<`a'<`b'<`c'…`x'<`y'<`z'。

两个单词在比较大小时,会从首字母开始比起,如果两个字母相等则继续比较下一个,如果不等则按照字典序判断大小。举例来说 world 和 wolf 比较:第一次比较首字母,两个单词的首字母都是 w,故继续比较第二个字母。两个单词的第二个字母都是 o,故继续比较第三个字母。r 在字典序中是大于 l 的,因此 world 是大于 wolf 的。

遗憾的是 CSL 记不住字典序,只能把它打到小抄上。而 CSL 的队友偷偷更换了 CSL 的小抄。聪明的你是否能够回答出CSL按照被偷换的字典序做出的试卷答案?

输入描述:

第一行有一个整数 n ,表示卷子上题目的数量。

第二行有 26 个不同的英文小写字母(a - z),之间以空格分割,表示新的字典序。

接下来的 n 行,每行有两个字符串s1,s2s1,s2,之间以空格分割,表示题目中的两个单词。
 
1n10001≤n≤1000
1|s1|,|s2|10001≤|s1|,|s2|≤1000

输出描述:

对于每一道题,在一行输出其答案:如果s1<s2s1<s2 输出 "<";如果s1>s2s1>s2 输出 ">",否则输出 "="。
示例1

输入

复制
3
a b c d e f g h i j k l m n o p q r s t u v w x y z
world wolf
app apple
panda panda

输出

复制
>
<
=

题解:该题就是比较字符串,但是得按照所给字典序来比较
#include<cstdio>
#include<algorithm> 
#include<iostream>
using namespace std;
int main()
{
   int n;
   char z[30];
   char a[1010],b[1010];
   cin>>n;
   for(int i=0;i<26;i++)
     cin>>z[i];
   while(n--)
   {
    scanf("%s%s",a,b);
    int k=0,f=0;
    for(int i=0;a[i]!=''||b[i]!='';i++)
    {
        if(a[i]!=b[i]) 
        {
            for(int j=0;j<26;j++)
           {
            if(a[i]==z[j])
              k=j;
            if(b[i]==z[j])
              f=j;
            }
            break;
            
        }
    }  
       if(k>f)
        cout<<">"<<endl;
    else if(k<f)
        cout<<"<"<<endl;
    else
        cout<<"="<<endl;
    }
    return 0;    
} 
原文地址:https://www.cnblogs.com/ylrwj/p/10631246.html