190218-Python(str) Algorithm(Red-black tree update)

1. Python-str

s = 'ABCDEFG'

s[0:3] 从第1个取到第3个,顾头不顾尾

s[-1] 最后一个

s[0:] 取全部

s[0:5:2] 从第1个取到第5个,隔两个取一个

s[4:0:-1] 从第5个取到第2个,倒着取

s[-1::-1] 倒着取所有值

str.capitalize() 首字母大写

str.upper() 所有字母大写

str.lower() 所有字母小写

str.swapcase() 所有字母大小写互换

str.title() 所有非字母后的第一个字母大写

str.center(20,'~') 扩充至长度20的字符串,str放在中间,两边用~填充

str.expandtabs() /t后在8的倍数+1位置开始,中间空白

len(str) 字符串长度

str.startswith('abc') 判断字符串是否由abc开始

str.find('W') 返回W的key

str.strip('%#') 去除%和#

str.split(';') 有;的地方隔开成列表

str='abc{0}, edf{1}, ghl{2},{0}'.format('d','a','t') 使用d,a,t代替占位符

str.replace('a','b') a用b代替 

for index in str: print(i) 查找所有字符

if 'abc' in str 判断是否存在abc

2.Algorithm-red black tree update

方法:子树元素数记录在节点中

问题1:查找节点所对应的tree中的第几小时,根据左侧子树的大小加1计算

问题2:insert和delete 旋转子树时,将记录的子树大小也对应旋转

3.Algorithm-Interval tree

方法:节点记录区间low值和high值,以low值划分树,记录子树中最大的树在节点中

问题1:查找是否有重合区间节点在树中时,

区间 lower higher                 节点 lower higher 子树max

区间higher 《  节点lower , 向左子树

区间higher  》 节点lower,区间lower 》 节点lower, 同时区间lower《子树max, 遍历子树中存在重合区间。

区间higher  》 节点lower,区间lower 《 节点lower,该节点即使重合区间。

区间higher  》 节点lower,区间lower 》 节点lower,同时区间lower》子树max,不存在重合区间。              

猜你喜欢

转载自www.cnblogs.com/jiraiya-gouketsumonogatari/p/10398497.html