ARTS:

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

Algorithm

【leetcode】520. Detect Capital

https://leetcode.com/problems/detect-capital/submissions/

1)problem

一句话,你需要判断其中大写字母的使用是否正确。

当下列情况之一成立时,我们将单词中大写字母的用法定义为正确:

  • 这个单词中的所有字母都是大写字母,如“USA”。
  • 这个单词中的所有字母都不是大写字母,如“leetcode”。
  • 如果它有多个字母,只有这个词中的第一个字母是大写字母,如“Google”。

否则,我们定义该单词不以正确的方式使用大写字母。

Example 1:

Input: "USA"
Output: True

Example 2:

Input: "FlaG"
Output: False

注意: 输入将是一个非空单词,由大写和小写拉丁字母组成。

2)answer

  • 把这个单词转换为大写字母,如果和原来字符串对比相等,就返回true
  • 把这个单词转换为小写字母,如果和原来字符串对比相等,就返回true
  • 把这个单词转换为首个字母为大写,如果和原来字符串对比相等,就返回true

否则为False

3)solution

class Solution(object):
    def detectCapitalUse(self, word):
        """
        :type word: str
        :rtype: bool
        """
        if word.upper() == word:
            return True
        elif word.lower() == word:
            return True
        elif word.capitalize() == word:
            return True
        else:
            return False

第二种算法:

class Solution(object):
    def detectCapitalUse(self, word):
        """
        :type word: str
        :rtype: bool
        """

        lowerStr = list(word)
        for i, j in enumerate(lowerStr):
            if j >= 'A' and j <= 'Z':
                lowerStr[i] = chr(ord(j) + (ord('a') - ord('A')))
        if "".join(lowerStr) == word:
            return True

        upperStr = list(word)
        for i,j in enumerate(upperStr):
            if j >='a' and j<='z':
                upperStr[i] = chr(ord(j) - (ord('a') - ord('A')))
        if "".join(upperStr) == word:
            return True

        capitalStr = list(word)
        for x in range(len(word)):
            if x == 0:
                if capitalStr[x] >= 'a' and capitalStr[x] <= 'z':
                    capitalStr[x] = chr(ord(capitalStr[x]) - (ord('a') - ord('A')))
            else:
                if capitalStr[x]>= 'A' and capitalStr[x] <= 'Z':
                    capitalStr[x]  = chr(ord(capitalStr[x]) + (ord('a') - ord('A')))
        if "".join(capitalStr) == word:
            return True
        return False

Review

【漏洞挖掘】多线程扫描

1)场景

端口多线程扫描

2)问题难点

因为每一个socket都有时间延迟,每一个socket扫描都将会耗时几秒钟

3)解决问题的方法

引入Python线程:线程提供了一种同时执行的方式。

4)方法细节

多线程使用方法:

for tgtPort in tgtPorts:
        print('Scanning port ' + str(tgtPort))
        t = threading.Thread(target=connScan, args=(tgtHost, int(tgtPort)))
        t.start()

加锁:creenLock.acquire()

锁打开,信号量将允许线程继续运行然后打印输出,如果锁定,我们将要等到控制信号量的进程释放锁。

释放锁:screenLock.release()

信号量:semaphore是一个内置的计数器

每当调用acquire()时,内置计数器-1
每当调用release()时,内置计数器+1

Tip

【安全开发】Python解析Pcap包类源码学习

1)场景

解析PCAP包,读取里面的关键信息。

2)问题难点

自动化读取

3)解决思路

使用Python搜索关键字筛选出指定的数据包

4)方法细节

Python解析Pcap包类源码学习

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

Share

【业务】绕过PALOALTO TRAPS EDR解决方案

1)场景

绕过PALOALTO TRAPS EDR解决方案,运行黑客工具

2)问题难点

无法直接卸载。

3)解决思路

通过fltMC.exe卸载筛选器驱动程序,达到关掉PALOALTO TRAPS服务的目的。

4)方法细节

绕过PALOALTO TRAPS EDR解决方案

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

【ARTS】01_15_左耳听风-20190218~20190224的更多相关文章

  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. aerospike数据库配置

    https://blog.csdn.net/u011344514/article/details/53082757

  2. vue基础篇---路由的实现《2》

    现在我们来实现这样一个功能: 一个页面,包含登录和注册,点击不同按钮,实现登录和注册页切换: 编写父组件 index.html <div id="app"> <s ...

  3. 免费开源.net的pdf操作控件PdfiumViewer

    最终我找到了pdffiumViewer.开源免费的.net组件. 亲测,可以按第一个下载地址,改写开发.如果对源码感兴趣,可以上GitHub网站 效果图:  1.源代码下载地址: https://do ...

  4. 2018牛客网暑期ACM多校训练营(第二场)G Transform(二分)

    题意 在一个数轴上有n个集装箱,第 i 个集装箱的位置为x[i],且在集装箱内装有a[i]件货物,现在将这些集装箱内的货物进行移动(将一件货物从第 i 个集装箱移动到第 j 个集装箱的花费就为2*ab ...

  5. Golang入门教程(十二)安装注意事项

    1.$GOPATH (1)go 命令依赖一个重要的环境变量:$GOPATH .注:这个不是Go安装目录 (2) (3) (4)git 安装 (5)包管理对应关系 (6)安装完之后bee 工具后,bee ...

  6. sql注入问题-视图-事物-以及存储过程(可视化工具)

    可视化工具(了解) 可视化工具 workbench 视图 视图 是一张虚拟的表 语法: create view 视图表名 as select * from t1; 作用: .他是执行as 后面的sql ...

  7. Map接口、HashMap类、LinkedHashSet类

    java.util.Map<K, V>接口 双列集合,key不可以重复 Map方法: 1.public V put(K key, V value):键值对添加到map,如果key不重复返回 ...

  8. 谷歌地图,国内使用Google Maps JavaScript API,国外业务

    目前还是得墙 <!DOCTYPE html> <html> <head> <meta name="viewport" content=&q ...

  9. 割点判断+luogu 3469 POI2008 BLO

    1.根节点,有2棵及以上子树 2.非根节点,有子节点dfn[u]<=low[v] #include <bits/stdc++.h> #define N 1000050 using n ...

  10. SQL Server 远程备份详解

    例1: 有A数据库服务器,B本机: 我现在想通过在B机器上通过代码调用SQL来执行A数据库的备份到B机器上 调用的SQL语句为:Backup Database MYDATABASE To Disk=' ...