A:

3. Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters.
Example 1:

Input: "abcabcbb"
Output: 3 
Explanation: The answer is "abc", with the length of 3. 
###Example 2:

Input: "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.
Example 3:

Input: "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3. 
             Note that the answer must be a substring, "pwke" is a subsequence and not a substring.
#1
class Solution(object):
    def lengthOfLongestSubstring(self, s):
        """
        :type s: str
        :rtype: int
        """
        start = maxLength = 0
        usedChar = {}
        
        for i in range(len(s)):
            if s[i] in usedChar and start <= usedChar[s[i]]:
                start = usedChar[s[i]] + 1
            else:
                maxLength = max(maxLength, i - start + 1)

            usedChar[s[i]] = i

        return maxLength

#2
        dicts = {}
        maxlength = start = 0
        for i,value in enumerate(s):
            if value in dicts:
                sums = dicts[value] + 1
                if sums > start:
                    start = sums
            num = i - start + 1
            if num > maxlength:
                maxlength = num
            dicts[value] = i
        return maxlength

76. Minimum Window Substring

Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).

Example:

Input: S = "ADOBECODEBANC", T = "ABC"
Output: "BANC"
Note:

If there is no such window in S that covers all characters in T, return the empty string "".
If there is such window, you are guaranteed that there will always be only one unique minimum window in S

387.First Unique Character in a String

##1
class Solution(object):
   def firstUniqChar(self, s):
        letters='abcdefghijklmnopqrstuvwxyz'
        index=[s.index(l) for l in letters if s.count(l) == 1]
        return min(index) if len(index) > 0 else -1

##2
class Solution:
    def firstUniqChar(self, s: str) -> int:
        """
        :type s: str
        :rtype: int
        """
        # build hash map : character and how often it appears
        count = collections.Counter(s)
        
        # find the index
        for idx, ch in enumerate(s):
            if count[ch] == 1:
                return idx     
        return -1

R

通过代码可以看出list本质就是一个带有指针的数组,ob_item就是一个指针列表,里面的每个指针都指向列表的元素,allocated表示存储这个列表的空间大小

通过源码可以看书tuple 就是一个固定大小的数组。

S

Why Google Stores Billions of Lines of Code in a Single Repository

https://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext
本篇文章主要阐述通过背景,分析单个代码仓库的优点。同时具有可选择性,总结等。

这篇文章主要讲了关于早期Google员工就决定通过一个中心资源控制系统分享代码管理。这方法在Google内部已经服务了16年。现在绝大多数Google的软件资源继续保存在一单个可分享的仓库,与此同时,Google的软件开发者人数稳定增长,Google代码库大小也在快速成长,。使用托管代码库的技术也在快速增长.
本文概述了该代码库的规模,并详细介绍了Google定制的单片源存储库以及选择模型的原因。 Google使用自行开发的版本控制系统来托管公司大多数软件开发人员可见并使用的一个大型代码库。 这个集中式系统是Google许多开发人员工作流程的基础。 在这里,我们提供了系统和工作流程的背景知识,这些系统和工作流程使这样一个大型存储库的可行管理和工 我们将介绍Google的“基于干线的开发”策略以及构建工作流程并保持Google代码库健康的支持系统,包括用于静态分析,代码清理和简化代码审查的软件.
Google的单个软件仓库,被它的软件开发者所使用。
谷歌代码库被全世界95%的软件开发者使用,满足了超大规模系统的定义,提供了单个资源仓库模型被成功地缩放
谷歌代码库包含了大约十亿文件和大约35百万的提交涵盖了Google整整18年的历史,仓库包含了86TB的数据,在900百万唯一的资源文件中大约有20亿行。文件的总数有着从开发分支复制过来的资源文件。 在最新版本,配置文件,文档和支持数据文件中删除的文件;请参阅此处的表格,了解2015年1月以来Google的存储库统计信息摘要。

文章有点长,后续在翻译....

T

这周学了点Linux,同时学习了Go语言。以及复习下了数据结构,