<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chimuuu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/C_Donald</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; C_Donald]]></copyright><item><title><![CDATA[Python类中实例方法、类方法及静态方法的调用区别]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/78008364</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/78008364</guid><author>C_Donald</author><pubDate>Sun, 17 Sep 2017 09:31:19 +0800</pubDate><description><![CDATA[# usr/bin/env python
# _*_ coding:utf-8 _*_

'''
测试python类中：
实例方法，类方法，静态方法及普通方法的调用方法区别
结论
1. instance创建时包含隐藏参数self,cls.因此调用时对四种method皆可直接调用；
2. class创建时包含隐藏参数cls.无self. 因此调用instance_method时需要传入instanc]]></description><category></category></item><item><title><![CDATA[素数筛实现素数的快速筛选]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77962654</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77962654</guid><author>C_Donald</author><pubDate>Wed, 13 Sep 2017 10:23:37 +0800</pubDate><description><![CDATA[# usr/bin/env python
# _*_ coding:utf-8 _*_

'''
素数筛（Sieve of primes）：给定一个较大值n，寻找1~n中的所有素数，并把它打印出来。

判断一个数m是否是素数，需要花费O(√n)时间。
当然是遍历并判断的话，需要花费O(n√n)时间，
生产者实现也很简单:
1. 首先生成一个bool列表表示该index的数是否是素数；
2. 显然0]]></description><category></category></item><item><title><![CDATA[Python 装饰器实现样例]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77949884</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77949884</guid><author>C_Donald</author><pubDate>Tue, 12 Sep 2017 21:21:21 +0800</pubDate><description><![CDATA[# coding:utf-8
'''
装饰器实现
闭包的应用

装饰器和被装饰函数都有参数时，
一：需要三层的嵌套
第一层传装饰器参数、第二层嵌套传函数、第三层传被装饰函数的参数

二：三层返回
最里层返回func(*args)拿到参数，外层返回最里层函数，最外层返回次外层
'''
def dec(isnot = False):
    print 'call dec'
    if isnot:]]></description><category></category></item><item><title><![CDATA[1、Nginx服务器架构初探]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77892660</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77892660</guid><author>C_Donald</author><pubDate>Fri, 08 Sep 2017 11:23:23 +0800</pubDate><description><![CDATA[主要内容： 
1. 模块化结构的相关知识 
2.  Nginx如何处理web请求 
3. Nginx的事件驱动模型 
4 .Nginx设计架构的概览一、Nginx的模块化结构  1.1 核心模块：对两类功能的支持
              主体功能：包括进程管理，权限控制，错误日志记录，配置解析等；
              响应请求功能：包括事件驱动机制，正则表达式解析等；   1.2 标准H]]></description><category></category></item><item><title><![CDATA[MySQL中的存储引擎的锁机制]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77863849</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77863849</guid><author>C_Donald</author><pubDate>Wed, 06 Sep 2017 11:03:41 +0800</pubDate><description><![CDATA[锁机制是为了解决数据库的并行性和数据的一致性而产生的，通过为访问的数据加锁，可以使得被访问的数据不被修改，从而保证数据的有效性和一致性。]]></description><category></category></item><item><title><![CDATA[按输入序列长度为M，按其数据二进制中 ‘1’ 的个数多少，返回前N多的元素]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77702392</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77702392</guid><author>C_Donald</author><pubDate>Wed, 30 Aug 2017 10:00:59 +0800</pubDate><description><![CDATA[# usr/bin/env python
# _*_ coding:utf-8 _*_
'''
按输入序列长度为M，按其数据二进制中 ‘1’ 的个数多少，返回前N多的元素
( 若元素含有的 ‘1’ 个数相同则返回数值较大的那个 )

如：
5
2
5 3 7 1 2
返回：
7 5
'''

def getResult(M, N, array):

	new_array = []
	bin_arr]]></description><category></category></item><item><title><![CDATA[最大矩形面积]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77688290</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77688290</guid><author>C_Donald</author><pubDate>Tue, 29 Aug 2017 21:09:48 +0800</pubDate><description><![CDATA[# usr/bin/env python
# _*_ coding:utf-8 _*_
'''
给定一组非负整数组成的数组h，代表一组柱状图的高度，其中每个柱子的宽度都为1。 
在这组柱状图中找到能组成的最大矩形的面积（如图所示）。 
入参h为一个整型数组，代表每个柱子的高度，返回面积的值。

输入例子1:
6                   #个数
2 1 5 6 2 3

输出例子1:
1]]></description><category></category></item><item><title><![CDATA[拼凑钱币]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77688268</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77688268</guid><author>C_Donald</author><pubDate>Tue, 29 Aug 2017 21:07:18 +0800</pubDate><description><![CDATA[# usr/bin/env python
# _*_ coding:utf-8 _*_
'''
给你六种面额 1、5、10、20、50、100 元的纸币，假设每种币值的数量都足够多，
编写程序求组成N元（N为0~10000的非负整数）的不同组合的个数。
 
动态规划：dp[j] = dp[j] + dp[j-coins[i]], 条件是：j>coins[i]
'''


def GetNum(N)]]></description><category></category></item><item><title><![CDATA[连续子数组最大和]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77602993</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77602993</guid><author>C_Donald</author><pubDate>Sat, 26 Aug 2017 16:22:02 +0800</pubDate><description><![CDATA[# coding:utf-8

def getResult(num, array):
    
    if not num or not array:
        return  None

    s_um = array[0]
    max_sum = array[0]

    for i in range (1 , len (array)):
        # 判断贡献情况]]></description><category></category></item><item><title><![CDATA[二叉树的四种遍历方式 （前序，中序，后序，层序遍历 python实现）]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77481838</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77481838</guid><author>C_Donald</author><pubDate>Tue, 22 Aug 2017 16:23:47 +0800</pubDate><description><![CDATA[# -*- coding:utf-8 -*-
'''
操作给定的二叉树，输出二叉树的三种遍历结果

前序遍历：根左右 8 6 5 7 10 9 11    第一位是根节点
中序遍历：左根右 5 6 7 8 9 10 11    中间一位是根节点
后续遍历：左右根 5 7 6 9 10 10 8    最后一位是根节点

输入描述:

二叉树
    	    8
    	   / \]]></description><category></category></item><item><title><![CDATA[几种常见的设计模式之 python 实现]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77351781</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77351781</guid><author>C_Donald</author><pubDate>Fri, 18 Aug 2017 08:58:52 +0800</pubDate><description><![CDATA[转载借鉴于 五岳；十分感谢http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html


单例模式的四种写法

# coding=utf-8
# 单例模式（四种方法）

#-*- encoding=utf-8 -*-
print '----------------------方法1-----------------]]></description><category></category></item><item><title><![CDATA[任意进制转换 python实现]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77253176</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77253176</guid><author>C_Donald</author><pubDate>Wed, 16 Aug 2017 16:46:26 +0800</pubDate><description><![CDATA[# coding:utf-8

'''
描述：给定一个十进制数M，以及需要转换的进制数N。将十进制数M转化为N进制数
输入： 4 2
输出： 100

@author:chimuuu
'''
import math

def translate(num, base_num):
    if num < base_num:
        return str(num)
    else:
]]></description><category></category></item><item><title><![CDATA[求N!中0的个数 python实现]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77252942</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77252942</guid><author>C_Donald</author><pubDate>Wed, 16 Aug 2017 16:41:23 +0800</pubDate><description><![CDATA[# -*- coding:utf-8 -*-
'''
求N!中0的个数

思路：
分析：
    对N进行质因数分解 N=2^x * 3^y * 5^z...，由于10 = 2*5，所以末尾0的个数只和x与z有关，
    每一对2和5相乘可以得到一个10，于是末尾0的个数=min(x,z)。在实际中x是远远大于z的，所以我们只要求出z的值即可。
    根据公式
    z = N/5 + N/]]></description><category></category></item><item><title><![CDATA[检查链表是否为回文 python实现]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77252455</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77252455</guid><author>C_Donald</author><pubDate>Wed, 16 Aug 2017 16:38:41 +0800</pubDate><description><![CDATA[# -*- coding:utf-8 -*-

'''
题目描述

请编写一个函数，检查链表是否为回文。

给定一个链表ListNode* pHead，请返回一个bool，代表链表是否为回文。
测试样例：

{1,2,3,2,1}

返回：true

{1,2,3,2,3}

返回：false

@author chimuuu
'''

class ListNode:
    def __init]]></description><category></category></item><item><title><![CDATA[求两个字符串的最长公共子串 python实现]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77247758</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77247758</guid><author>C_Donald</author><pubDate>Wed, 16 Aug 2017 14:56:18 +0800</pubDate><description><![CDATA[# coding:utf-8
'''
求两个字符串的最长公共子串
思想：建立一个二维数组，保存连续位相同与否的状态
'''

def getNumofCommonSubstr(str1, str2):

    lstr1 = len(str1)
    lstr2 = len(str2)
    record = [[0 for i in range(lstr2+1)] for j in ran]]></description><category></category></item><item><title><![CDATA[python中 正则表达式匹配一个反斜杠 ‘\’]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77149408</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77149408</guid><author>C_Donald</author><pubDate>Sun, 13 Aug 2017 19:56:04 +0800</pubDate><description><![CDATA[# coding:utf-8

import re

re_str = "\\\\"
# reObj = re.compile(restr)
test_str = "abc\\cd\\hh"

res =  re.findall(re_str, test_str)
print res

for i in res:
    print i


结果为：

['\\', '\\']
\
\]]></description><category></category></item><item><title><![CDATA[剑指offer 之 二进制中1的个数]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/77050075</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/77050075</guid><author>C_Donald</author><pubDate>Thu, 10 Aug 2017 14:20:08 +0800</pubDate><description><![CDATA[# -*- coding:utf-8 -*-
'''
面试10：二进制中1的个数

思路1：
    将1循环左移分别与n进行按位与运算，可得n每一位的1的个数
    运算次数:   为n二进制下的位数

思路2：
    将n减1，再与n进行与预算，这样会把该整数最右边的一个1变0，也就是消去了一个1
    这样的话，有多少个1就进行多少次操作，自然也就得出二进制下1的个数了。
    运算]]></description><category></category></item><item><title><![CDATA[剑指offer 之 字符串的全排列、全组合]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/76856921</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/76856921</guid><author>C_Donald</author><pubDate>Mon, 07 Aug 2017 20:00:42 +0800</pubDate><description><![CDATA[# -*- coding:utf-8 -*-
'''
输入一个字符串,按字典序打印出该字符串中字符的所有排列。
例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。

思路：递归固定第i个元素，向后
'''

class Solution:
    def P]]></description><category></category></item><item><title><![CDATA[剑指offer 之 二叉搜索树与双向链表]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/76856038</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/76856038</guid><author>C_Donald</author><pubDate>Mon, 07 Aug 2017 19:54:42 +0800</pubDate><description><![CDATA[# -*- coding:utf-8 -*-

'''
面试27：二叉树搜索与双向链表

题目描述
	输入一棵二叉搜索树，将该二叉搜索树转换成一个排序的双向链表。
	要求不能创建任何新的结点，只能调整树中结点指针的指向。 

'''
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left =]]></description><category></category></item><item><title><![CDATA[剑指offer 之 二叉搜索树的后序遍历序列]]></title><link>https://blog.youkuaiyun.com/C_Donald/article/details/76528183</link><guid>https://blog.youkuaiyun.com/C_Donald/article/details/76528183</guid><author>C_Donald</author><pubDate>Tue, 01 Aug 2017 14:51:32 +0800</pubDate><description><![CDATA[# coding:utf-8

'''
面试24：二叉搜索树的后序遍历序列
    输入一个整数数组，判断该数组是不是某二叉搜索树的后序遍历的结果。
	如果是则输出true,否则输出false。假设输入的数组的任意两个数字都互不相同。
'''

class Solution:
    def VerifySquenceOfBST(self, sequence):
        # write c]]></description><category></category></item></channel></rss>