【ARTS】01_19_左耳听风-20190318~20190324
ARTS:
- Algrothm: leetcode算法题目
- Review: 阅读并且点评一篇英文技术文章
- Tip/Techni: 学习一个技术技巧
- Share: 分享一篇有观点和思考的技术文章
Algorithm
【leetcode】13. Roman to Integer
https://leetcode.com/problems/roman-to-integer/
1)problem
Roman numerals are represented by seven different symbols: I
, V
, X
, L
, C
, D
and M
.
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
For example, two is written as II
in Roman numeral, just two one's added together. Twelve is written as, XII
, which is simply X
+ II
. The number twenty seven is written as XXVII
, which is XX
+ V
+ II
.
Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII
. Instead, the number four is written as IV
. Because the one is before the five we subtract it making four. The same principle applies to the number nine, which is written as IX
. There are six instances where subtraction is used:
I
can be placed beforeV
(5) andX
(10) to make 4 and 9.X
can be placed beforeL
(50) andC
(100) to make 40 and 90.C
can be placed beforeD
(500) andM
(1000) to make 400 and 900.
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.
Example 1:
Input: "III"
Output: 3
Example 2:
Input: "IV"
Output: 4
Example 3:
Input: "IX"
Output: 9
Example 4:
Input: "LVIII"
Output: 58
Explanation: L = 50, V= 5, III = 3.
Example 5:
Input: "MCMXCIV"
Output: 1994
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
2)answer
预想结果;
result = M + ( M - C ) + (C - X) + ( V - I) = 1000 + 900 + 90 + 4
由于罗马数字通常从左到右从最大到最小。
"MCMXCIV"的实际值应该是:
M = 1000,CM = 900,XC = 90,IV = 4。
具体计算是;
result = M + ( M - C ) + (C - X) + ( V - I) = 1000 + 900 + 90 + 4
C 100 被放在M 1000前面的时候,应该用减数M-C,然后:
# result = M + C
# temp = M - C
# result = M + C + temp = M + C + M - C = M + M
因为+C
和-C
抵消了,所以M+M=2000
,和计划中的result = M + (M-C)
就少了一个-C
的步骤。这是错误的。
为了使当小数放在大数的结果正确,所以就要将-C的值补充回来。也就是 *2 的由来,才是正确的解法。
result += numral_map[s[i]] - 2 * numral_map[s[i-1]]
3)solution
class Solution(object):
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
numral_map ={ "I":1,"V":5, "X":10, "L":50, "C":100, "D":500, "M":1000 }
result = 0
for i in range(len(s)):
if i > 0 and numral_map[s[i]] > numral_map[s[i-1]]:
result += numral_map[s[i]] - 2 * numral_map[s[i-1]]
else:
result += numral_map[s[i]]
return result
Review
【漏洞挖掘】10个绕过反病毒的恶意用户技巧
1)场景
概述10个需要注意的问题。绕过杀毒软件
2)问题难点
10个绕过反病毒的恶意用户技巧
3)解决问题的方法
介绍
添加防病毒软件信任名单策略
通过GUI禁用反病毒
终止反病毒软件进程
停止并禁用反病毒服务
通过调试设置禁用反病毒软件
卸载反病毒软件
从UNC路径或可移动媒体执行(U盘)
从备用数据流执行
从DLL执行
从文件系统外部执行
总结
4)方法细节
10个绕过反病毒的恶意用户技巧
https://www.cnblogs.com/17bdw/p/10575815.html
Tip
【安全开发】爬虫基础
1)场景
爬虫知识基础知识
2)问题难点
基础框架整理
3)解决思路
0x1、基础框架原理
1.1、爬虫基础
1.1、基础原理
1.2、发起HTTP请求-Request
1.3、获取响应内容-Response
1.4、练手库-Urllib
4)方法细节
爬虫基础
https://www.cnblogs.com/17bdw/p/10735127.html
Share
【业务】极客时间-左耳听风-程序员攻略-软件设计
1)场景
软件设计学习
2)问题难点
软件设计学习的资源
3)解决思路
程序员练级攻略:软件设计
- 编程范式
- 一些软件设计的相关原则
- 一些软件设计的读物
4)方法细节
极客时间-左耳听风-程序员攻略-软件设计
https://www.cnblogs.com/17bdw/p/10591364.html
【ARTS】01_19_左耳听风-20190318~20190324的更多相关文章
- 【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_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 ...
- 【ARTS】01_08_左耳听风-20181231~20190106
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
随机推荐
- sping入门
SpringMVC 1.RequestMapping 处理地址映射请求 参数: value, produces, method, params, headers value:指定请求的实际地址 1.最 ...
- script ajax / XHR / XMLHttpRequest
s 利用XHR 调试发送form data表单数据,F5键刷新form表单URL ,http请求地址,获取token,提交. 如:http://pcp.cns*****.com/spcp-web/vm ...
- 【.net】在ASP.NET中,IE与Firefox下载文件名中带中文汉字的文件,文件名乱码的问题
#问题:客户端为ie或Firefox,服务端为asp.net时,下载文件名中包含中文汉字时,下载下来的文件的文件名是乱码: #解决方案: 示例代码:下载名称中带汉字的文件: public void P ...
- Java NIO系列教程(七) selector原理 Epoll版的Selector
目录: Reactor(反应堆)和Proactor(前摄器) <I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor> <[转]第8章 前摄器(Proa ...
- CentOS7 图形化方式安装 Oracle 18c 单实例
下载 Oracle 数据库,zip 包 https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.h ...
- Web API中的内容协商
一.内容协商的概念 HTTP规范将内容协商定义为“当有多个格式可用时为给定响应选择最佳格式的过程”.HTTP中内容协商的主要机制是这些请求标头: Accept:响应可接受哪些媒体类型,例如“appli ...
- [Android] Android ViewPager 中加载 Fragment的两种方式 方式(一)
Android ViewPager 中加载 Fragmenet的两种方式 一.当fragment里面的内容较少时,直接 使用fragment xml布局文件填充 文件总数 布局文件:view_one. ...
- 404.17 - 动态内容通过通配符 MIME 映射映射到静态文件处理程序
刚刚重装了系统,原有的ASP.NET工程下面的WebService无法运行,如下: 404.17 - 动态内容通过通配符 MIME 映射映射到静态文件处理程序 微软的提示,是做三项更改,但是我改了之后 ...
- VS Resharper正常代码显示红色处理
点击重启VS即可.
- luogu 2296 寻找道路 简单BFS
简单的BFS,练习基础 #include<bits/stdc++.h> #define rep(i,x,y) for(register int i=x;i<=y;i++) #defi ...