牛客網劍指offer知識點歸納

牛客網劍指offer知識點歸納

第2題:replace()方法

str.replace(old, new[, max])
實例:

str = "this is string example....wow!!! this is really string";
print str.replace("is", "was");
print str.replace("is", "was", 3);

結果:

thwas was string example....wow!!! thwas was really string
thwas was string example....wow!!! thwas is really string

第3題:鏈表

鏈表並不等同於列表,元祖等,它們的區別在於鏈表中的每個元素都是由兩部分組成,一部分是值(元素值),一部分是下一個元素的地址,輸入一個鏈表,通常是已經指向第一個節點(每次使用完一個節點,則將指針指向第二個節點),保存在列表中。
題目描述:輸入一個鏈表,按鏈表從尾到頭的順序返回一個ArrayList。
代碼

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    # 返回從尾部到頭部的列表值序列,例如[1,2,3]
    def printListFromTailToHead(self, listNode):
        # write code here
        res = []
        while listNode:
            res.append(listNode.val)
            listNode = listNode.next
        return res[::-1]

第3題:數組操作

a[i:j]:i指起始位置,默認爲0;j是終止位置,默認爲len(a),在取出數組中的值時就會從數組下標i(包括)一直取到下標j(不包括j)
a[i:j:h]:這裏的i,j還是起始位置和終止位置,h是步長,默認爲1。
若i/j位置上出現負數依然倒數第i/j個下標的位置,h若爲負數則是逆序輸出,這時要求起始位置下標大於終止位置;
在兩個冒號的情況下若h爲正數,則i默認爲0,j默認爲len(a);
若h爲負數,則i默認爲-1(即最後一個位置),j默認爲-len(a)-1(下標0的前一個位置,這樣就能輸出到下標0了)
例:
1、

a='python'
b=a[1:4:]
print(b)

輸出:yth #冒號後沒有寫明故代表默認步長爲1
2、

a='python'
b=a[:-1]
print(b)

輸出:pytho #-1代表倒數第一個位置,因爲:前面的初始位置沒有指定,默認爲0,就從下標0一直取到最後一個位置之前
3、

a='python'
c=a[1:-2] 
print(c)

輸出:yth #-2代表倒數第二個位置,即從下標1取到倒數第二個位置之前
4、

a='python'
b=a[::-1]
print(b) 

輸出:nohtyp #前兩個冒號和上面一致,就是確定起始位置和終止位置
#第三個參數-1是指步長爲-1,也就是逆序輸出
#這裏a[::-1]相當於 a[-1:-len(a)-1:-1],也就是從最後一個元素到第一個元素
#所以[::-1]經常用來對一個數組進行逆序輸出
5、

a='python'
b=a[-2:-7:-2]
print(b)

輸出:otp #這裏起始位置是-2,終點是-7(不包括,所以輸出到-6位置),步長爲-2

第4題 重建二叉樹

二叉樹知識點
前序遍歷:
若二叉樹爲空則結束返回,否則:
(1)訪問根結點。
(2)前序遍歷左子樹。
(3)前序遍歷右子樹 。
中序遍歷:
若二叉樹爲空則結束返回,否則:
(1)中序遍歷左子樹
(2)訪問根結點
(3)中序遍歷右子樹
後序遍歷:
若二叉樹爲空則結束返回,否則:
(1)後序遍歷左子樹
(2)後序遍歷右子樹
(3)訪問根結點
關鍵點:
已知前序遍歷序列和中序遍歷序列,可以唯一確定一棵二叉樹;
已知後序遍歷序列和中序遍歷序列,可以唯一確定一棵二叉樹;
但是已知前序遍歷序列和後序遍歷序列,是不能確定一棵二叉樹的。
該題目前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則二叉樹爲:
在這裏插入圖片描述

第5題 棧和隊列

:先進後出
隊列:先進先出

第6題 reverse()和reversed()方法區別

reverse():python中數組(列表)獨有的方法,用於列表數據的反轉

list = [1, 3, 2, 4]
list.reverse()
print(list)

結果:[4,2,3,1]
reversed():python自帶的方法,列表,元祖,字典的反轉

aa = (1, 2, 3)
print(tuple(reversed(aa)))

結果:(3,2,1)

第7題 斐波那契數列

斐波那契數列:在數學上,斐波那契數列指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……,被以遞推的方法定義:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)

python表示n次方

2的2次方:22
2的3次方:2
3
2的n次方:2**n

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章