Leecode总结1

20180423

1.twosum

学习到的函数:enumerate():

    用法:对于一个字典L,返回其索引和键值。for i,n in enumerate(L):  return i,n

2.two Sum2

set()函数:

    用法:删除掉重复元素,构造一个无序数组,可以进行交,并,差运算。

zip()函数:

    用法:将两个数组组合到一块,例如:a=[1,2,3] b=[2,3,4] zip(a,b)=[(1,2),(2,3),(3,4)] 

set()函数和zip函数结合可以对两个数组相似性进行判断,例如a={"cat","cat","dog","dog"},b={aabb},这两个数组形式相似。

20180424

3.Valid Perfect Square

牛顿法逼近求解:

    给一个数,判断是否为平方数。用到了牛顿法,逐渐逼近。x-x0=(f(x)-f(x0))/f'(x)。

4.Valid Parentheses

判断给出的括号是否对应(例如:[({})])。这一题用到了字典和栈,判断给出的s是否在dic={'}':'{',']':'[',')':'('},若在则进栈。

5.Valid Parentheses2(680)

判断一个数列能不能至多删除一个字符,使其变为回文,这个算法分两步,从判断两端入手,一直到最后一个字符。if s[left]!=s[right]   肯定两端有不相同的字符,则使用one = s[left:right]  two = s[left+1,right+1]然后让one,two和one[::-1],two[::-1]对比,断点有个字符不对,就会发现,然后剔除。

20180425

6.Jewels and Stones(771)

map()函数:

    map(function,literate...)这是个映射函数,对literate里面的数在function计算之后返回出来:例如:z=map(lambda x:x**2,[1,2,3])  z=[1,4,9]

匿名函数:

    不用返回值,一般函数这样写:def square(x):return x**2  可以写为: lambda x :x**2

count()方法:

    count(sub,start,end) 搜索字符sub,开始点到结束点。return  sum(map(J.count,S))

20180426

7.Unique Morse Code Words(804)

数字与字母转变与字母与数字转变:

    chr(64) = 'A' 数字转换字母

    ord('A') = 65 字母转换为数字

怎样选择单词组中的单词和单词中的字母:

    for word in words: 

                for s in word:

8.Hamming Distance(461)

二级制运算符:

    >>、<<、&、|、^ 分别代表左移,右移,与,或,异或,左移1位除以2,左移两位除以4,右移一位乘以2,右移两位乘以4

汉明距离:表示两个等长字符串在不同位置上的不同的字符数目。

解答:

    由汉明距离定义可知,求两个字符串不同的字符有多少个,可以用异或概念:相同为0,不同为1,再计算1的数量,用count()函数。

9.Judge Route Circle(657)

return moves.count('U') == moves.count('D')  and moves.count('L') == moves.count('R')

20180428

10.Self Dividing Numbers

xrange和range区别:

    xrange返回一个生成器,range返回一个列表,在返回很大的时候,用xrange好于range

20180503

11.Array Partition I(561)

sorted()函数:

    对阵列进行排序

12.Shortest Distance to a Character(821)

列表循环赋值

    positions = [i for i,letter in emumerate(S) if letter == C]  这个表达式是将列表S中的与C相同的字母序号放入一个列表中。

    for position in positions  position指位置,而不是值。

13.Number Complement(476)

十进制转二级制与二进制转十进制

    十->二  b = bin(d)[2:]  前面会有0bxxxx;二->十   d = int(b,2)

构造全len(b)个‘1’

    i = i << len(bin(b)[2:])    i-1 后就是 11111111111

20180504

14.Reverse String(344)

翻转代码:

    s=s[::-1]

20180505

15.Reverse Words in a String III(557)

join()函数

    就是将字段连接到一起,e.g. a= '-'.join(sequence)  sequence = 'abc'  print: a-b-c  就是要插到它们中间。



    












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值