【ARTS】01_09_左耳听风-20190107~20190113
ARTS:
- Algrothm: leetcode算法题目
- Review: 阅读并且点评一篇英文技术文章
- Tip/Techni: 学习一个技术技巧
- Share: 分享一篇有观点和思考的技术文章
Algorithm
【leetcode】657. Robot Return to Origin
https://leetcode.com/problems/robot-return-to-origin/
1)problem
There is a robot starting at position (0, 0), the origin, on a 2D plane. Given a sequence of its moves, judge if this robot ends up at (0, 0) after it completes its moves.
The move sequence is represented by a string, and the character moves[i] represents its ith move. Valid moves are R (right), L (left), U (up), and D (down). If the robot returns to the origin after it finishes all of its moves, return true. Otherwise, return false.
Note: The way that the robot is "facing" is irrelevant. "R" will always make the robot move to the right once, "L" will always make it move left, etc. Also, assume that the magnitude of the robot's movement is the same for each move.
机器人从位置(0,0)开始,在2D平面上开始。给定一系列动作,判断该机器人在完成动作后是否在(0,0)结束。
移动序列由字符串表示,字符move [i]表示其第i个移动。有效移动是R(右),L(左),U(上)和D(下)。如果机器人在完成所有移动后返回原点,则返回true。否则,返回false。
注意:机器人“面对”的方式无关紧要。“R”将始终使机器人向右移动一次,“L”将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。
Example 1:
Input: "UD"
Output: true
Explanation: The robot moves up once, and then down once. All moves have the same magnitude, so it ended up at the origin where it started. Therefore, we return true.
机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终位于它开始的原点。因此,我们回归真实。
Example 2:
Input: "LL"
Output: false
Explanation: The robot moves left twice. It ends up two "moves" to the left of the origin. We return false because it is not at the origin at the end of its moves.
机器人向左移动两次。它最终在原点的左边有两个“移动”。我们返回false,因为它不是在它移动结束时的原点。
2)answer
只需要两个变量记录水平方向和垂直方向是否最后处在原点即可;
3)solution
#include "pch.h"
#include <iostream>
#include <string>
using std::string;
class Solution {
public:
bool judgeCircle(string moves) {
int y = 0;
int x = 0;
for (int i = 0; i<moves.length();i++)
{
switch (moves.at(i))
{
case 'U':{ y++; } break;
case 'D':{ y--; } break;
case 'L':{ x--; } break;
case 'R': {x++; } break;
default:
break;
}
}
if (x == 0 && y == 0)
{
return true;
}
return false;
}
};
int main()
{
std::cout << "Hello World!\n";
Solution s;
s.judgeCircle("UD");
}
Review
【漏洞挖掘】如何使用responder工具通过窃取NTLMv2哈希在Windows环境中实现利用
1)场景
- 局域网内投毒方式
- 域环境获取域控HASH
2)问题难点
局域网内如何扩展权限?
3)解决问题的方法
LLMNR(Link-Local Multicast Name Resolution,链路本地多播名称解析)协议是一种基于DNS包格式的协议。它可以将主机名解析为IPv4和IPv6的IP地址。这样用户就可以直接使用主机名访问特定的主机和服务,而不用记忆对应的IP地址。该协议被广泛使用在Windows Vista/7/8/10操作系统中。
该协议的工作机制很简单。例如,计算机A和计算机B同处一个局域网中。当计算机A请求主机B时,先以广播形式发送一个包含请求的主机名的UDP包。主机B收到该UDP包后,以单播形式发送UDP的响应包给主机A。由于整个过程中,都是以UDP方式进行,主机A根本不能确认响应主机B是否为该主机名对应的主机。这就造成欺骗的可能。
4)方法细节
如何使用responder工具通过窃取NTLMv2哈希在Windows环境中实现利用。
https://www.cnblogs.com/17bdw/p/10253721.html
5)总结
两种攻击方式:
1、捕获NTLMv2哈希并使用“Hashcat”密码破解工具破解。
2、使用Responder和Multirelay.py脚本执行重放NTLMv2哈希到“已禁用SMB签名”的计算机。如果重放成功,在目标计算机上将获得shell访问权限。
Tip
【安全开发】MFC小型工具通用界面框架CLIST控件+右键菜单功能
1)场景
由于工作需要我会写代码开发工具给客户或者同事用。代码都能实现,但写个黑乎乎的命令行工具给别人用确实显得不够专业,用别人写好的成型工具又担心有后门。
所以掌握积累几个MFC的常用控件随时调用,代码量堆起来了就是不断反复利用的过程了。未来还是会把精力用在实现实际功能上,以成为界面工程师作为目标学习很容易找不到工作。
2)问题难点
常用界面分析,只需要显示结果,保存路径,打开字典就可以做一个专有工具。
3)解决思路
MFC-CListCtrl
4)方法细节
MFC-小型工具通用界面框架
https://www.cnblogs.com/17bdw/p/10238922.html
5)总结
界面功能并不会太复杂,知道怎么得到结果,怎么插入数据和扩展就足够了。
主要功能:
CListCtrl控件使用,右键菜单功能删除单行、删除全部、增加自定义内容。
扩展性:
主要考虑在右键菜单栏增加处理函数,实现主要功能,然后得到结果返回到界面上。
Share
【业务】程序员攻略开篇
1)场景
安全工程师转安全开发
2)问题难点
怎么进阶
3)解决思路
JAVA、C++、Python,Linux
4)方法细节
极客时间-左耳听风-程序员攻略开篇
https://www.cnblogs.com/17bdw/p/10227032.html
5)总结
- 入门篇
编程语言:Python和JavaScript
操作系统:Linux
编程工具:Visual Studio Code
- 正式入门
JAVA
- 修养篇
英文能力、问问题的能力、写代码的修养、安全防范意识、软件工程和上线规范、编程规范等。
- 专业基础篇
在编程语言方面,推荐学习 C、C++ 和 Java 这三个工业级的编程语言。
理论学科方面,需要学习算法、数据结构、网络模型、计算机原理等内容。
系统知识方面会讲述 Unix/Linux、TCP/IP、C10K
【ARTS】01_09_左耳听风-20190107~20190113的更多相关文章
- 【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_08_左耳听风-20181231~20190106
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
随机推荐
- 删除linux下的指定文件
要求:删除linux下2天前的指定文件 find 文件问题:在 tmp 目录下有大量包含 picture_* 的临时文件,每天晚上 2:00 对一天前的文件进行清理.之前在 crontab 下跑如下脚 ...
- Leetcode 347.前K个高频元素 By Python
给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], ...
- Leetcode 242.有效的字母异位词 By Python
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram" ...
- 【BZOJ1925】[SDOI2010]地精部落(动态规划)
[BZOJ1925][SDOI2010]地精部落(动态规划) 题面 BZOJ 洛谷 题解 一道性质\(dp\)题.(所以当然是照搬学长PPT了啊 先来罗列性质,我们称题目所求的序列为抖动序列: 一个抖 ...
- Word Ladder - LeetCode
目录 题目链接 注意点 解法 小结 题目链接 Word Ladder - LeetCode 注意点 每一个变化的字母都要在wordList中 解法 解法一:bfs.类似走迷宫,有26个方向(即26个字 ...
- python 忽略警告
import warningswarnings.filterwarnings("ignore")看起来整洁一点...
- [学习笔记]prufer序列
前言 PKUWC和NOIWC都考察了prufer序列,结果统统爆零 prufer序列就是有标号生成树对序列的映射 prufer序列生成 每次选择编号最小的叶子删掉,把叶子的父亲加入prufer序列,直 ...
- P1856 矩形周长
哇!这小破题坑了我好久. 扫描线+线段树 这题数据范围小,没离散化.真要离散化我还搞不好呢. 具体的看这个博客吧. 主要是这个坑爹的c,len把我搞了,其他的还好. 代码: #include < ...
- redis访问安全加固
目录 redis漏洞 入侵特征 安全隐患 redis安全规范 禁止root用户启动 限制redis文件目录访问权限 开启密码认证,设置复杂密码 禁用或重命名危险命令 设置允许监听地址,不要使用0.0. ...
- 第一节,TensorFlow基本用法
一 TensorFlow安装 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tsnsor(张量)意味着N维数组,Flow(流)意味着基 ...