【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 ...
随机推荐
- day10 递归
死循环,因此递归必须要定义一个明确的结束条件 def calc(n): print(n) calc(n) calc(10) return 表示终止符号,最终会得出一个确切的返回值,且可以赋值 def ...
- mysql test== 坑
错误 <if test="status == '1'"> 正确 <if test="status == '1'.toString()">
- 自学Zabbix4.2 web监控项创建+item详解
自学Zabbix4.2 web监控项创建+item详解 1. web监控项创建 1.1 Scenario 选项卡 Name: 监控项的名称 Application: 放到哪个应用中 Authenti ...
- windows & gcc & mingw & mysy 编译 openssl
今天有一个项目需要使用到 https, 以前一直用的都是http请求, 用 socket() 实现 https 请求我还真是头一回遇到. 先网上搜索了一下相关资料,明白了 https 相比较 http ...
- 一次有趣的ant-design与后端数据交互的使用
最近有个需求是新闻时间排序与点击量排序,数据库中存储的新闻是按照时间顺序排序的,从后台数据中取出数据,在前端进行页面展示即可. 我用到了ant-design中的Tabs切换页,样式大概如下图. 其实这 ...
- eclipse如何以指定JDK启动
eclipse如何以指定JDK启动 2018年01月11日 14:30:23 buerc 阅读数:11179 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csd ...
- ansible-playbook组件解析及操作全解
转载于http://www.178linux.com/7001 一.ansible-playbook介绍: playbook是由一个或多个”play”组成的列表.play的主要功能在于将事先归为一组的 ...
- Eclipse鼠标点击变量高亮显示时好时坏的BUG
Eclipse有一个BUG,就是鼠标点击某个变量会高亮显示所有这个变量 会有时高亮有时不高亮,修复这个BUG就是替换Eclipse 安装目录plugins目录下的org.eclipse.e4.ui.w ...
- Cannot send, channel has already failed: tcp://127.0.0.1:8161
解决方案一 我觉得你可能需要把服务完全停掉了 然后重启一下. http://localhost:8161(管理端口) tcp://127.0.0.1:61616(服务端口)
- 八皇后问题动态演示_Qt5实现
//核心代码如下 //Queen--放置皇后 #include "queue.h" queue::queue() { *; ; this->board = new bool[ ...