NCSTOJ 1417 : 后缀子串排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaohaibo_/article/details/83052586

深夜水一道字符串,最近整理了自己的模版感觉真好

题目描述

对于一个字符串,将其后缀子串进行排序,例如grain
其子串有:
grain
rain
ain
in
n
然后对各子串按字典顺序排序,即:
ain,grain,in,n,rain

输入

多组输入,每组输入为一行字符串。

输出

将子串排序输出,每行一个字符串

样例输入

grain
banana

样例输出

ain
grain
in
n
rain
a
ana
anana
banana
na
nana
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <vector>
#include <set>
using namespace std;
// #define LOCAL
#define _for(i,a,b) for(int i=(a); i<(b); ++i)
#define _rep(i,a,b) for(int i=(a); i<=(b); ++i)
#define INIF 0x3f3f3f3f
template<typename T>
ostream& operator<<(ostream& os, const vector<T>& v){
    for(int i=0; i<v.size();++i) os<<v[i]<<endl; return os;
}
template<typename T>
ostream& operator<<(ostream& os, const set<T>& v){
    for(typename set<T>::iterator it=v.begin(); it!=v.end(); ++it) os<<*it<<" "; return os;
}
struct Point{
    int x, y;
    Point(int x=0, int y=0):x(x),y(y){}
    Point& operator=(Point& p){x=p.x; y=p.y; return *this;}
};
typedef Point Vector;
Vector operator+ (const Vector& A, const Vector& B){return Vector(A.x+B.x,A.y+B.y);}
Vector operator- (const Vector& A, const Vector& B){return Vector(A.x-B.x,A.y-B.y);}
Vector operator* (const Vector& A, int p){return Vector(A.x*p, A.y*p);}
bool operator== (const Point& a, const Point& b){return a.x==b.x && a.y==b.y;}
bool operator< (const Point& a, const Point&b){return a.x<b.x || (a.x==b.x && a.y<b.y);}
istream& operator>>(istream& is, Point &p){return is>>p.x>>p.y;}
int Next[4][2] = {-1,0,1,0,0,1,0,-1};
int readint() {int x;scanf("%d",&x); return x;}

int main(){
#ifdef LOCAL
    freopen("/Users/zhaohaibo/Desktop/in.txt","r",stdin);
#endif
    ios::sync_with_stdio(false);
    string ss;
    while(getline(cin,ss)){
        vector<string>vec;
        _rep(i,0,ss.length()-1)
        vec.push_back(ss.substr(i));
        sort(vec.begin(),vec.end());
        cout<<vec;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/zhaohaibo_/article/details/83052586