【ARTS】01_11_左耳听风-20190121~20190127
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的更多相关文章
- 【ARTS】01_21_左耳听风-201900401~201900407
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_20_左耳听风-20190325~20190331
zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...
- 【ARTS】01_19_左耳听风-20190318~20190324
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_18_左耳听风-20190311~20190317
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_17_左耳听风-20190304~20190310
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_16_左耳听风-20190225~20190303
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_14_左耳听风-20190211~20190217
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_10_左耳听风-20190114~20190120
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- 【ARTS】01_09_左耳听风-20190107~20190113
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
随机推荐
- 自学Aruba3.1-Aruba配置架构-WLAN配置架构
点击返回:自学Aruba之路 自学Aruba3.1-Aruba配置架构- WLAN配置架构 WLAN配置架构 1. AP group : Aruba无线控制器通过AP Group来构建无线网络配置参 ...
- 洛谷 P2679 子串 解题报告
P2679 子串 题目描述 有两个仅包含小写英文字母的字符串\(A\)和\(B\). 现在要从字符串\(A\)中取出\(k\)个互不重叠的非空子串,然后把这\(k\)个子串按照其在字符串\(A\)中出 ...
- [转载]Best Practices for Speeding Up Your Web Site
原文:http://developer.yahoo.com/performance/rules.html 提升网站加载速度的一些优化技巧,大部分在前端层面. 不知道是多久以前写的,看起来有些已经过时了 ...
- Python进制表示及转换
进制表示: 二进制:>>> abin = 0b1000>>> abin8 八进制:>>> aoct = 0o123 (数字0,字母o)>&g ...
- 在Sqlite中通过Replace来实现插入和更新
你可能在批量处理一个事务的时候,想要批量插入一系列的数据,但是这些数据当添加完一次之后,重新添加的时候,你不想要重新添加,只是想将原有的数据进行更新,例如:我想要通过Excel将一系列的图书导入到 ...
- BSGS&EXBSGS 大手拉小手,大步小步走
大步小步走算法处理这样的问题: A^x = B (mod C) 求满足条件的最小的x(可能无解) 其中,A/B/C都可以是很大的数(long long以内) 先分类考虑一下: 当(A,C)==1 即A ...
- P1274 魔术数字游戏 naive搜索+剪枝
真的naive...... 我把所有能剪的枝都剪了才过的.否则就是TTT 还有个很神奇的事:数组作为参数传进递归函数时会造成上一层函数里的数组的改变.这个我TM调了一天. 下面奉上代码 #includ ...
- Java基类和派生类
背景:对基类和派生类有更清晰的认识. 从外部看来,派生类是一个与基类具有相同接口的新类,或许还会有一些额外的的方法和域 .但继承并不仅仅是类的复用.当创建了一个派生类的对象时,该类包含了一个基类的子对 ...
- mac 中vim永久显示行号、开启语法高亮
步骤1: cp /usr/share/vim/vimrc ~/.vimrc 先复制一份vim配置模板到个人目录下 注:redhat 改成 cp /etc/vimrc ~/.vimrc 步骤2: vi ...
- 第2课:什么是SQL注入
SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是SQL注入的标准释义. 随着B/S模式被广泛的应用,用这种模式编写应用程序的程序员也越来越多,但由于开发人员的水 ...