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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了