6070 - 后缀排序

题目描述

字符串的后缀是指从该字符串某一位置开始到末尾的所有字符组成的子串。例如,字符串 BANANA 的所有后缀有:

BANANA 起始位置为 1 的后缀

ANANA 起始位置为 2 的后缀

NANA 起始位置为 3 的后缀

ANA 起始位置为 4 的后缀

NA 起始位置为 5 的后缀

A 起始位置为 6 的后缀

字符串的 “后缀排序” 是指字符串所有后缀按照字典顺序升序排序后的结果。对于 BANANA, 后缀排序的结果是:

A (6)

ANA (4)

ANANA (2)

BANANA (1)

NA (5)

NANA (3)

输入

一行一个仅由大写字母组成的字符串。

输出

假设输入字符串的长度为 n,输出一行,包含 n 个用空格分隔的整数,依次表示按字典序排序 后的各后缀在原字符串中的起始位置。

样例

输入

BANANA

输出

6 4 2 1 5 3

输入

XINXIYUWEILAI

输出

12 9 13 10 2 5 11 3 7 8 1 4 6
说明

数据规模与说明

对于 100 \% 的数据,字符串长度1≤n≤1,000

其实,后缀排序有非常高效的算法!当然,我们不要求大家 “想出” 或掌握这个方法。

来源

2025南京市“信息与未来”程序设计小能手

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 8
通过人数 6
金币数量 0 枚
难度 入门


上一题 下一题