把一个字符串 $S$ 排成一圈,从每个字符开始读一圈,把每次读到的字符串排序,按顺序将每个串的最后一个字符排成一个新字符串,求新字符串。($|S|\le10^5$)
分析
- 对于任意一个字符串,没有两个相同的后缀。
- 按照题意需要比较长度为len的字符串,故直接将s赋值一遍,考虑[1.len]的sa[i],直接从小到大输出即可,因为后缀比较len长度一定可以比较出来
题解
1 |
|
Success and failure are temporary.
把一个字符串 $S$ 排成一圈,从每个字符开始读一圈,把每次读到的字符串排序,按顺序将每个串的最后一个字符排成一个新字符串,求新字符串。($|S|\le10^5$)
1 | #include<bits/stdc++.h> |