LeetCode 937重新排列日志文件[自定义排序] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 937重新排列日志文件[自定义排序] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
解题的关键首先将字母日志和数字日志分离,字母日志单独进行排序,排序采用自定义排序,内容不同返回内容顺序,否则返回整个字符串顺序,代码如下:
class Solution
public:
vector<string> reorderLogFiles(vector<string>& logs)
vector<string> letter, num;
// 数字字母分类
for(auto& log : logs)
int len = log.size();
if(isalpha(log[len - 1]))
letter.emplace_back(log);
else num.emplace_back(log);
// 字母排序
sort(letter.begin(), letter.end(), [&](string& a, string& b)
int lenA = a.size(), lenB = b.size();
int index1 = a.find(' ') + 1, index2 = b.find(' ') + 1;
string resA = a.substr(index1, lenA - 1), resB = b.substr(index2, lenB - 1);
// 内容相同直接判断整个字符串
if(resA == resB)
return a < b;
// 内容不容判断内容
return resA < resB;
);
// 将num插入到letter的后面
letter.insert(letter.end(), num.begin(), num.end());
return letter;
;
以上是关于LeetCode 937重新排列日志文件[自定义排序] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 937. 重新排列日志文件 / 1823. 找出游戏的获胜者(约瑟夫环问题) / 713. 乘积小于 K 的子数组
[LeetCode] 937. Reorder Data in Log Files 日志文件的重新排序