DreamJudge-1294-后缀子串排序

1.题目描述

Time Limit: 1000 ms
Memory Limit: 256 mb

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

输入输出格式

输入描述:

多组数据输入。
每个案例为一行字符串。

输出描述:

将子串排序输出

输入输出样例

输入样例#:

grain

输出样例#:

ain
grain
in
n
rain

题目来源
上海交通大学机试题

2.题解

2.1 substr截取子串 + sort排序

思路

substr(pos); 从pos位置开始截取到末尾

代码

#include <bits/stdc++.h>

using namespace std;
int main() {
    string input;
    while (getline(cin, input)) {
        vector<string> suffixes;
        int len = input.length();
        
        // 生成所有后缀子串
        for (int i = 0; i < len; ++i) {
            suffixes.push_back(input.substr(i)); // substr(pos); 从pos位置开始截取到末尾 
        }
        
        // 按字典顺序排序
        sort(suffixes.begin(), suffixes.end());
        
        // 输出排序后的后缀子串
        for (const string& suffix : suffixes) {
            cout << suffix << endl;
        }
    }
    return 0;
}

posted @   DawnTraveler  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示