问题2205--字符串排名(2014提高)

2205: 字符串排名(2014提高)

时间限制: 1 Sec  内存限制: 128 MB
提交: 65  解决: 53
[提交] [状态] [讨论版] [命题人:]

题目描述

给定n个仅有小写字母构成的字符串,求他们在排序完后的排名,当两个字符串一样的时候,初始在前的字符串排名较前。

例如字符串:aa, ab, ba, aa

输出结果为:1, 3, 4, 2

#include<bits/stdc++.h>
using namespace std;
const int SIZE=1005;
int main(){
    string dict[SIZE];
    int rank[SIZE],ind[SIZE];
    //rank[i]表示第i个字符串的排名,ind[i]表示排名第i的字符串在原序列中的位置
    int i,j,n,tmp;
    cin>>n;
    for(i=1; i<=n; i++){
        rank[i]=i;
        ind[i]=i;
        cin>>dict[i];
    }
    for(i=1; i<n; i++)
      for(j=1; j<=n-i; j++) //冒泡排序
        if( (1) )
          swap(ind[j],ind[j+1]);
    for(i=1; i<=n; i++) (2);
    for(i=1; i<=(3); i++) cout<<rank[i]<<" ";
    cout<<rank[n]<<endl;
    return 0;
}

输入

输入n (3<=n<=1000)

接下来n行每行输入一个字符串,长度<=20

输出

输出字符串的排名,空格隔开

样例输入 Copy

7
aaa
aba
bbb
aaa
aaa
ccc
aa

样例输出 Copy

2 5 6 3 4 7 1

提示

阅读程序3

来源/分类