题解 | #后缀子串排序#
后缀子串排序
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; }