描述对于一个字符串将其后缀子串进行排序例如grain其子串有:grainrainaininn然后对各子串按字典顺序排序即:aingraininnrain输入描述每个案例为一行字符串。输出描述将子串排序输出希望能用c++编写代码
#include
bool compare(const std::string& s1, const std::string& s2) { return s1 < s2; }
std::vectorstd::string getSuffixes(const std::string& str) { std::vectorstd::string suffixes; for (int i = 0; i < str.length(); ++i) { suffixes.push_back(str.substr(i)); } return suffixes; }
int main() { std::string str; while (std::cin >> str) { std::vectorstd::string suffixes = getSuffixes(str); std::sort(suffixes.begin(), suffixes.end(), compare); for (const auto& suffix : suffixes) { std::cout << suffix << " "; } std::cout << std::endl; } return 0; }
原文地址: http://www.cveoy.top/t/topic/jauy 著作权归作者所有。请勿转载和采集!