ARTS:

  • Algrothm: leetcode算法题目
  • Review: 阅读并且点评一篇英文技术文章
  • Tip/Techni: 学习一个技术技巧
  • Share: 分享一篇有观点和思考的技术文章

Algorithm

【leetcode】937 .重新排序日志文件

https://leetcode.com/problems/reorder-log-files/

1)problem

你有一个日志数组 logs。每条日志都是以空格分隔的字串。
对于每条日志,其第一个字为字母数字标识符。然后,要么:

  • 标识符后面的每个字将仅由小写字母组成,或;
  • 标识符后面的每个字将仅由数字组成。
    我们将这两种日志分别称为字母日志和数字日志。保证每个日志在其标识符后面至少有一个字。
    将日志重新排序,使得所有字母日志都排在数字日志之前。字母日志按字母顺序排序,忽略标识符,标识符仅用于表示关系。数字日志应该按原来的顺序排列。
    返回日志的最终顺序。

示例:

Input: ["a1 9 2 3 1","g1 act car","zo4 4 7","ab1 off key dog","a8 act zoo"]
Output: ["g1 act car","a8 act zoo","ab1 off key dog","a1 9 2 3 1","zo4 4 7"]

提示:

0 <= logs.length <= 100
3 <= logs[i].length <= 100
logs[i]保证有一个标识符,标识符后面有一个字。

2)answer

算法一:
采用stable_sort,三元运算符

当两个串有一个数字和字符串,&&符号就把三元运算符里的条件表达式变为false,进入表达式2,里面是反转,具体反转逻辑如下。

true && true           数字 & 数字              字符串比较
true && false          数字 & 非数字          !false  =  true
false && true        非数字 & 数字            !false = true
false && false       非数字 & 非数字          !false = true

1、两个数字,比较大小
2、一个数字,一个字符串。返回true
3、一个字符串,一个数字。返回true
4、两个字符串,返回true

3)solution


#include "pch.h"
#include <iostream>
#include <string>
#include <vector>
#include <unordered_set>
#include <algorithm>
using std::vector;
using std::string;
using std::unordered_set;

class Solution {
public:
    vector<string> reorderLogFiles(vector<string>& logs) {
        // use 'stable_sort' instead of the 'sort'
        std::stable_sort(logs.begin(), logs.end(), [](const std::string& lhs, const std::string& rhs) {
            auto i = lhs.find_first_of(' '), j = rhs.find_first_of(' ');
            bool digiti = isdigit(lhs[i + 1]);
            bool digitj = isdigit(rhs[j + 1]);
            return (!digiti && !digitj) ? lhs.substr(i + 1) < rhs.substr(j + 1) : !digiti;
        });

        return logs;
    }

};
int main()
{

    Solution solution;
    vector<string> A1 = { "a1 9 2 3 1","g1 act car","zo4 4 7","ab1 off key dog","a8 act zoo" };
    vector<string> A2 = solution.reorderLogFiles(A1);
}

4)总结

  • stable_sort()

sort()和stable_sort()都可以进行排序,但对于相等的值,stable_sort()不会更改原先的顺序,但sort()有可能更改顺序,但也有可能不改。

C++排序之stable_sort()的方法
https://blog.csdn.net/lycx1234/article/details/54891827

few lines C++ version, 8ms
https://leetcode.com/problems/reorder-log-files/discuss/193485/few-lines-C%2B%2B-version-8ms

  • isdigit(c)
    如果 c 是一个数字,则该函数返回非零值,否则返回 0。

  • 三元运算符

// 条件表达式 ? 表达式1 : 表达式2;
bool b_show = true;
int state = b_show ? 0 : 1;
// state = 0;

Review

【漏洞挖掘】redis未授权访问漏洞

1)场景

Redis未授权访问漏洞

2)问题难点

  • 检测

redis 6379

  • 利用

覆盖密钥进行登录服务器

3)解决问题的方法

禁止向互联网提供非业务必须对外端口

4)方法细节

使用密钥认证机制远程登录Linux

https://www.cnblogs.com/17bdw/p/10301638.html

5)总结

  • 密钥认证机制

创建存放key的文件

  • 生成Key

漏洞场景-redis未授权访问漏洞

Tip

【安全开发】基于对话框_消息处理

1)场景

MFC开发相关程序

2)问题难点

应急响应中开发图形化小工具

3)解决思路

使用MFC基于对话框开发小型的工具

4)方法细节

基于对话框_消息处理

https://www.cnblogs.com/17bdw/p/10339884.html

Share

【业务】攻击者利用的Windows命令、横向渗透工具分析结果列表

1)场景

应急响应中提取攻击者横向渗透的方法

2)问题难点

怎么进来的,做了什么

3)解决思路

通过搜索.pf文件可以确认恶意程序启动的时间。

攻击者横向渗透局域网的方式

4)方法细节

攻击者利用的Windows命令、横向渗透工具分析结果列表

https://www.cnblogs.com/17bdw/p/10311287.html

【ARTS】01_11_左耳听风-20190121~20190127的更多相关文章

  1. 【ARTS】01_21_左耳听风-201900401~201900407

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  2. 【ARTS】01_20_左耳听风-20190325~20190331

    zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...

  3. 【ARTS】01_19_左耳听风-20190318~20190324

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  4. 【ARTS】01_18_左耳听风-20190311~20190317

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  5. 【ARTS】01_17_左耳听风-20190304~20190310

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  6. 【ARTS】01_16_左耳听风-20190225~20190303

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  7. 【ARTS】01_14_左耳听风-20190211~20190217

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  8. 【ARTS】01_10_左耳听风-20190114~20190120

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  9. 【ARTS】01_09_左耳听风-20190107~20190113

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

随机推荐

  1. 自学Linux Shell6.2-用户自定义环境变量

    点击返回 自学Linux命令行与Shell脚本之路 6.2-用户自定义环境变量 1.设置局部用户定义变量 一旦启动bash shell(或者执行一个shell脚本),你就能创建这个shell进程可见的 ...

  2. 架构师成长之路2.1-PXE+Kickstart原理

    点击返回架构师成长之路 架构师成长之路2.1-PXE+Kickstart原理 PXE+Kickstart 主要用于在公司内网批量安装新服务器系统,这极大地简化了用光盘重复安装Linux操作系统的过程, ...

  3. 【BZOJ4503】两个串(FFT)

    [BZOJ4503]两个串(FFT) 题面 给定串\(S\),以及带通配符的串\(T\),询问\(T\)在\(S\)中出现了几次.并且输出对应的位置. \(|S|,|T|<=10^5\),字符集 ...

  4. CF1114E Arithmetic Progression(交互题,二分,随机算法)

    既然是在CF上AC的第一道交互题,而且正是这场比赛让我升紫了,所以十分值得纪念. 题目链接:CF原网 题目大意:交互题. 有一个长度为 $n$ 的序列 $a$,保证它从小到大排序后是个等差数列.你不知 ...

  5. go vendor目录

    参考 https://blog.csdn.net/u010649766/article/details/80327035 那么查找依赖包路径的解决方案如下: 当前包下的vendor目录. 向上级目录查 ...

  6. P1186 玛丽卡 删边最短路最大值

    反正蛮水的一道题. 胡雨菲一句话让我的代码减少了10行还A了,之前的是个错的. 思路:先求出最短路,然后依次删去最短路上的每一条边,跑最短路求最大值. 关于删边:我的想法是当作链表删除,把last的n ...

  7. 【LOJ#10002】喷水装置

    题目大意:给定一段区间 [l,r] ,N 条线段,求至少用多少条线段能够覆盖整个区间,不能覆盖输出-1. 题解:每次在起点小于当前位置的线段集合中选择有端点最大的位置作为下一个位置,并更新答案,如果当 ...

  8. java:给图片上加水印

    import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buff ...

  9. Linux下编译安装Lnmp

    1.安装nginx 下载链接http://nginx.org/en/download.html (1)下载,解压 wget http://nginx.org/download/nginx-1.15.8 ...

  10. Sublime Text3—系统设置

    摘要 软件的设置分为系统设置和快捷键设置两项,这次分享系统设置,Sublime Text3-自带快捷键介绍前面已分享过. 正文 菜单依次选择Preferences | Settings,我们修改设置不 ...