AT163 [ARC003B] さかさま辞書

题目描述

高橋君は友達とチャットで逆さしりとりをすることにしました。
逆さしりとりとは、前の人が言った単語の頭文字で終わる単語を答えるしりとりです。
しかし、高橋君は英単語に自信がないのでこっそり「さかさま辞書」を使うことにしました。

普通の辞書は単語の先頭の文字がABC順になるように並べられており、同じ文字同士の場合はその次の文字がABC順になるように並べられます。
先頭から見ていく普通の辞書順に対して、「さかさま辞書」は後ろの文字から見ていきます。
例えば apple, bee, card は、普通の辞書なら apple → bee → card の順になります。
しかし、「さかさま辞書」では d で終わる card が 1番、apple とbee は同じ e で終わるのでその1つ前が e である bee が 2番、l であるapple が 3番の順になります。

図(a):普通の辞書順に並べた例 図(b):さかさま辞書順に並べた例

高橋君の代わりに「さかさま辞書」を作成し、与えられた単語を「さかさま辞書」順に並べてください。

输入格式

入力は以下の形式で標準入力から与えられる。


 $ N $ 
 $ s_{1} $ 
 $ s_{2} $ 
:
:
 $ s_{N} $ 
  • 1行目は、並べる単語数を表す整数N (1 ≦ N ≦ 100) が与えられる。
  • 2行目からN行は、並べる単語を表す文字列が1行に1つずつ与えられる。
  • i+1行目の文字列 s_isi​ の長さは1文字以上 20文字以下で、含まれる文字はアルファベットの小文字のみ(a-z)です。
  • なお、重複する単語が与えられることはありません。

输出格式

入力として与えられた単語を、さかさま辞書順に標準出力に1行ずつ出力せよ。
なお、最後には改行を出力せよ。

题意翻译

题意:

给定N个字符串,将其倒置后按字典序排序,再按顺序输出其原字符串。

感谢@xusiyuan 提供的翻译

输入输出样例

 

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
string a[101];
bool cmp(string a,string b){
	reverse(a.begin(),a.end());
	reverse(b.begin(),b.end());
	int AC=a<b;
	reverse(a.begin(),a.end());
	reverse(b.begin(),b.end());
	return AC;
}
int main(){
    int n,i;
    cin>>n;
    for(i=0;i<n;i++){
        cin>>a[i];
    }
    sort(a,a+n,cmp);
    for(i=0;i<n;i++){
        cout<<a[i]<<endl;
    }
    return 0;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值