去重:
    def array_diff(a,b):

    1. def array_diff(a,b):
    2. list=[] #定义一个数组
    3. for x in a: #提取出a的值到x
    4. if x not in b: #提取出的x不在b里面的话,就执行增加x
    5. list.append(x)
    6. return list 得到去重后的值
    7. 更精简的写法
    8. return [x for x in a if x not in b]

    Credit Card Mask:
    Usually, when you buy something, you’re asked whether your credit card number, phone number or answer to your most secret question is still correct. However, since someone could look over your shoulder, you don’t want that shown on your screen. Instead, we mask it.
    Your task is to write a function maskify, which changes all but the last four
    characters into ‘#’.

    1. maskify("4556364607935616") == "############5616"
    2. maskify( "64607935616") == "#######5616"
    3. maskify( "1") == "1"
    4. maskify( "") == ""
    5. # "What was the name of your first pet?"
    6. maskify("Skippy") == "##ippy"
    7. maskify("Nananananananananananananananana Batman!") == "####################################man!"

    我的代码思路,把字符差分成两端后四位和前置位,前置位长度替换成#再拼接后四位

    1. # return masked string
    2. def maskify(cc):
    3. # return "#"*(len(cc)-4)+cc[-4:]
    4. # pass
    5. a=(len(cc)-4)*"#" #提取长度始终减4的字符串,并且len*#,有多长就有多少#
    6. b=str(cc[-4:]) #提取出倒数第四个到结尾的值
    7. c=a+b #拼接字符串
    8. return c #返回值

    别人的代码:

    1. # return masked string
    2. def maskify(cc):
    3. if len(cc) >= 4: #判断传入的参数长度是否大于等于4,不足4直接返回原数
    4. return (len(cc)-4)*'#'+'{}'.format(cc[-4:]) # 和我的方法差不多,用format,把cc[-4:]的数值传递给{}并进行拼接
    5. else:
    6. return cc

    标准答案:

    1. # return masked string
    2. def maskify(cc):
    3. return "#"*(len(cc)-4) + cc[-4:] #属于是666

    二分算法
    给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

    1. 输入: nums = [-1,0,3,5,9,12], target = 9
    2. 输出: 4
    3. 解释: 9 出现在 nums 中并且下标为 4
    4. class Solution(object):
    5. def search(self, nums, target):
    6. """
    7. :type nums: List[int]
    8. :type target: int
    9. :rtype: int
    10. """
    11. left, right = 0, len(nums) - 1 # 设置最小和最大的下标 0,len - 1
    12. while left <= right: # 最小下标标小于等于最大下标时使用while循环
    13. middle = (left + right) >> 1 # 取中间数下标也可以//2,但>>运算比较快一点点
    14. print(middle)
    15. if nums[middle] < target: #当nums的中间数下标,小于要查找的数值时 ,最小下标数=下标中间数+1,
    16. left = middle + 1 #+1后再次进入while循环判断, while left <= right: 等于就直接return
    17. print(left)
    18. elif nums[middle] > target:
    19. right = middle - 1
    20. print(right)
    21. else:
    22. return middle
    23. return 123 #容错配置,要是不在查找的表里返回自定义的值
    24. a=Solution.search(self='',nums=(1,2,3,4,5,6,7,8,9,10,11),target=5)
    25. print(a)