题解 | #后缀子串排序#
后缀子串排序
https://www.nowcoder.com/practice/f89f96ea3145418b8e6c3eb75773f65a
#include<bits/stdc++.h>
using namespace std;
vector<string> sorted(const string& str) {
//截取字串存放到vector数组中
vector<string> sub_string;
for (int i = 0; i < str.length(); i++) {
sub_string.push_back(str.substr(i));
}
//对子串按照字典顺序排序
sort(sub_string.begin(), sub_string.end());
return sub_string;
}
int main() {
string str;
cin >> str;
vector<string>sorted_string;//用于接收sorted函数的返回值
sorted_string = sorted(str);
for (auto iter = sorted_string.begin(); iter != sorted_string.end(); ++iter) {
cout << *iter << endl;
}
}
1.string中的substr函数可以用于截取子串,substr(a,b)中,a表示从下标a处开始截取,b表示截取的长度,如果不设置b参数,则默认为截取到字符串结束的位置。
2.vector中的sort函数可以对数组中的元素进行排序,如果vector中的元素是string类的,可以对字符串按照字典顺序进行排序
3.用迭代器遍历vector,格式如下:
for (auto iter = vec.begin(); iter != vec.end(); iter++) {
cout << *iter << endl;
}

