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. 如何再window下统计自己写的代码行

    git log --since="2018-05-01" --before="2018-11-5" --author="$(git config -- ...

  2. ansible基础-playbook剧本的使用

    ansible基础-playbook剧本的使用 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.YAML概述 1>.YAML的诞生 YAML是一个可读性高,用来表达数据序 ...

  3. 【JQ】jq动态绑定事件.on()、解绑事件off()

    #JQ 绑定与解绑事件的方法的历史演变 1. jquery1.4 及之前的版本,由.click() 或 .bind()方法绑定的事件,不能适用脚本创建的新元素:即是说页面加载完成后,再动态创建的DOM ...

  4. Java的内省机制

    我现在的理解就是,Java的内省机制就是针对JavaBean的,可以获取到类的属性名称,以及属性的Getter和Setter方法,应该是在写框架的时候才会用到内省机制,还有一个地方可以用到内省机制,就 ...

  5. centos6.5mini版安装及配置

    1.安装选择界面,这个选第一个 2.镜像完整性检查,一般都是跳过SKIP 3.欢迎界面,进入安装了 4.语言选择,这个是没有中文的,用默认的英文就行 5.键盘布局,用默认的us 6.这里会给一个警告, ...

  6. ruby----%使用法

    %{String}  用于创建一个使用双引号括起来的字符串,这个表示法与%Q{String}完全一样 result = %{hello} puts "result is: #{result} ...

  7. canvas加载图片需要二次刷新的问题

    如题:此问题我也经在百度问问上进行了解答.https://zhidao.baidu.com/question/1048045241465845579.html 好吧,难怪现在百度那么坑人,理论水军专家 ...

  8. 剑指offer面试题4: 二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  9. springboot的lombok

    lombok概述 lombok简介 Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写 ...

  10. vue 组件数据传递

    vue组件化开发 主要为了把一个大功能拆分成若干个小的功能,解决高耦合问题,同时也方便开发人员维护.   从功能上组件可以分为木偶组件和功能组件. 木偶组件(为了接收数据,渲染数据,基本上是没有逻辑的 ...