複試上機指南之驚喜

今天在做之前的題,有一道題網上的一種做法,讓我驚了,不是怎麼怎麼複雜而是感覺腦回路很驚奇,很牛逼,看代碼。

題意是輸入一組英文單詞,按字典順序輸出(大寫與小寫字母具有相同大小寫),排序輸出。
例如:輸入:Information Info Inform info Suite suite suit 輸出:Info info Inform Information suit Suite suite

//因爲按照正常的來說,輸出的是Info Inform Information Suite info suit suite
//所以我們可以把大寫轉換爲小寫,寫一個結構體,兩個字符串,一個放需要排序的,一個放轉換爲小寫的,排序按照小寫的排,輸出輸出大寫。
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct node  
{  
    string a,b;  
};  
bool cmp(node x,node y)  
{  
    return x.a<y.a;  
}  
node ns[100];  
int main()  
{  
    string tt;  
    int i,n=0;  
    while(cin>>tt)  
    {  
            ns[n++].a=tt;  
    }  
    for(i=0; i<n; i++)  
    {  
        ns[i].b=ns[i].a;  
        for(int j=0; j<ns[i].a.length(); j++)  
        {  
            if(ns[i].a[j]>='A'&&ns[i].a[j]<='Z')  
                ns[i].a[j]+='a'-'A';  
        }  
    }  
    sort(ns,ns+n,cmp);  
    for(i=0; i<n; i++)  
        cout<<ns[i].b<<" ";  
    cout<<endl;
    for(i=0; i<n; i++)  
        cout<<ns[i].a<<" ";  
    cout<<endl;
 
	return 0;
} 

牛逼plus。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章