刷完劍指Offer好久了,前幾天想起來去年開通的博客園,正好把刷題筆記整理一下html
刷題平臺:牛客網正則表達式
刷題語言:Python數組
**鏈表(8道)**app
[劍指Offer 3. 從尾到頭打印鏈表 (鏈表)](https://www.cnblogs.com/huangqiancun/p/9775456.html)
劍指Offer 14. 鏈表中倒數第k個結點 (鏈表): https://www.cnblogs.com/huangqiancun/p/9782576.html
劍指Offer 15. 反轉鏈表 (鏈表): https://www.cnblogs.com/huangqiancun/p/9782581.html
劍指Offer 16. 合併兩個排序的鏈表 (鏈表): https://www.cnblogs.com/huangqiancun/p/9784264.html
劍指Offer 25. 複雜鏈表的複製 (鏈表): https://www.cnblogs.com/huangqiancun/p/9789991.html
劍指Offer 36. 兩個鏈表的第一個公共結點 (鏈表): https://www.cnblogs.com/huangqiancun/p/9797263.html
劍指Offer 55. 鏈表中環的入口結點 (鏈表): https://www.cnblogs.com/huangqiancun/p/9805173.html
劍指Offer 56. 刪除鏈表中重複的結點 (鏈表): https://www.cnblogs.com/huangqiancun/p/9808851.html函數
二叉樹(12道)
劍指Offer 4. 重建二叉樹 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9775476.html
劍指Offer 17. 樹的子結構 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9784299.html
劍指Offer 18. 二叉樹的鏡像 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9784305.html
劍指Offer 22. 從上往下打印二叉樹 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9789961.html
劍指Offer 24. 二叉樹中和爲某一值的路徑 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9789982.html
劍指Offer 38. 二叉樹的深度 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9797276.html
劍指Offer 39. 平衡二叉樹 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9797280.html
劍指Offer 57. 二叉樹的下一個結點 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9808870.html
劍指Offer 58. 對稱的二叉樹 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9808886.html
劍指Offer 59. 按之字形順序打印二叉樹 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9808897.html
劍指Offer 60. 把二叉樹打印成多行 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9808909.html
劍指Offer 61. 序列化二叉樹 (二叉樹): https://www.cnblogs.com/huangqiancun/p/9809252.htmlurl
二叉搜索樹(3道)
劍指Offer 23. 二叉搜索樹的後序遍歷序列 (二叉搜索樹): https://www.cnblogs.com/huangqiancun/p/9789968.html
劍指Offer 26. 二叉搜索樹與雙向鏈表 (二叉搜索樹): https://www.cnblogs.com/huangqiancun/p/9790050.html
劍指Offer 62. 二叉搜索樹的第k個結點 (二叉搜索樹): https://www.cnblogs.com/huangqiancun/p/9809275.htmlspa
數組(11道)
劍指Offer 1. 二維數組中的查找 (數組): https://www.cnblogs.com/huangqiancun/p/9775118.html
劍指Offer 6. 旋轉數組的最小數字 (數組): https://www.cnblogs.com/huangqiancun/p/9777569.html
劍指Offer 13. 調整數組順序使奇數位於偶數前面 (數組): https://www.cnblogs.com/huangqiancun/p/9782564.html
劍指Offer 28. 數組中出現次數超過一半的數字 (數組): https://www.cnblogs.com/huangqiancun/p/9790076.html
劍指Offer 30. 連續子數組的最大和 (數組): https://www.cnblogs.com/huangqiancun/p/9790672.html
劍指Offer 32. 把數組排成最小的數 (數組): https://www.cnblogs.com/huangqiancun/p/9796739.html
劍指Offer 35. 數組中的逆序對 (數組): https://www.cnblogs.com/huangqiancun/p/9796785.html
劍指Offer 37. 數字在排序數組中出現的次數 (數組): https://www.cnblogs.com/huangqiancun/p/9797271.html
劍指Offer 40. 數組中只出現一次的數字 (數組): https://www.cnblogs.com/huangqiancun/p/9797284.html
劍指Offer 50. 數組中重複的數字 (數組): https://www.cnblogs.com/huangqiancun/p/9805081.html
劍指Offer 51. 構建乘積數組 (數組): https://www.cnblogs.com/huangqiancun/p/9805097.htmlcode
字符串(8道)
劍指Offer 2. 替換空格 (字符串): https://www.cnblogs.com/huangqiancun/p/9775425.html
劍指Offer 27. 字符串的排列 (字符串): https://www.cnblogs.com/huangqiancun/p/9790064.html
劍指Offer 34. 第一個只出現一次的字符 (字符串): https://www.cnblogs.com/huangqiancun/p/9796768.html
劍指Offer 43. 左旋轉字符串 (字符串): https://www.cnblogs.com/huangqiancun/p/9797312.html
劍指Offer 44. 翻轉單詞順序列 (字符串): https://www.cnblogs.com/huangqiancun/p/9797316.html
劍指Offer 49. 把字符串轉換成整數 (字符串): https://www.cnblogs.com/huangqiancun/p/9805066.html
劍指Offer 52. 正則表達式匹配 (字符串): https://www.cnblogs.com/huangqiancun/p/9805124.html
劍指Offer 53. 表示數值的字符串 (字符串): https://www.cnblogs.com/huangqiancun/p/9805138.htmlhtm
棧(3道)
劍指Offer 5. 用兩個棧實現隊列 (棧): https://www.cnblogs.com/huangqiancun/p/9775503.html
劍指Offer 20. 包含min函數的棧 (棧): https://www.cnblogs.com/huangqiancun/p/9784325.html
劍指Offer 21. 棧的壓入、彈出序列 (棧): https://www.cnblogs.com/huangqiancun/p/9789942.htmlblog
遞歸(4道)
劍指Offer 7. 斐波那契數列 (遞歸): https://www.cnblogs.com/huangqiancun/p/9777581.html
劍指Offer 8. 跳臺階 (遞歸): https://www.cnblogs.com/huangqiancun/p/9777582.html
劍指Offer 9. 變態跳臺階 (遞歸): https://www.cnblogs.com/huangqiancun/p/9777588.html
劍指Offer 10. 矩形覆蓋 (遞歸): https://www.cnblogs.com/huangqiancun/p/9777593.html
回溯(2道)
劍指Offer 65. 矩陣中的路徑 (回溯): https://www.cnblogs.com/huangqiancun/p/9809322.html
劍指Offer 66. 機器人的運動範圍 (回溯): https://www.cnblogs.com/huangqiancun/p/9809331.html
其餘(15道)
劍指Offer 11. 二進制中1的個數 (其餘): https://www.cnblogs.com/huangqiancun/p/9782553.html
劍指Offer 12. 數值的整數次方 (其餘): https://www.cnblogs.com/huangqiancun/p/9782558.html
劍指Offer 19. 順時針打印矩陣 (其餘): https://www.cnblogs.com/huangqiancun/p/9784312.html
劍指Offer 29. 最小的K個數 (其餘): https://www.cnblogs.com/huangqiancun/p/9790641.html
劍指Offer 31. 整數中1出現的次數(從1到n整數中1出現的次數) (其餘): https://www.cnblogs.com/huangqiancun/p/9796710.html
劍指Offer 33. 醜數 (其餘): https://www.cnblogs.com/huangqiancun/p/9796754.html
劍指Offer 41. 和爲S的連續正數序列 (其餘): https://www.cnblogs.com/huangqiancun/p/9797300.html
劍指Offer 42. 和爲S的兩個數字 (其餘): https://www.cnblogs.com/huangqiancun/p/9797304.html
劍指Offer 45. 撲克牌順子 (其餘): https://www.cnblogs.com/huangqiancun/p/9797321.html
劍指Offer 46. 孩子們的遊戲(圓圈中最後剩下的數) (其餘): https://www.cnblogs.com/huangqiancun/p/9805026.html
劍指Offer 47. 求1+2+3+...+n (其餘): https://www.cnblogs.com/huangqiancun/p/9805043.html
劍指Offer 48. 不用加減乘除作加法 (其餘): https://www.cnblogs.com/huangqiancun/p/9805050.html
劍指Offer 54. 字符流中第一個不重複的字符 (其餘): https://www.cnblogs.com/huangqiancun/p/9805155.html
劍指Offer 63. 數據流中的中位數(其餘): https://www.cnblogs.com/huangqiancun/p/9809289.html
劍指Offer 64. 滑動窗口的最大值 (其餘): https://www.cnblogs.com/huangqiancun/p/9809300.html
# -*- coding:utf-8 -*- import requests from bs4 import BeautifulSoup if __name__ == '__main__': result = [] for i in range(1,5)[::-1]: target = 'https://www.cnblogs.com/huangqiancun/tag/%E5%89%91%E6%8C%87Offer/default.html?page='+str(i) req = requests.get(url=target) html = req.text bf = BeautifulSoup(html,'html.parser') for j in range(20)[::-1]: index = "PostsList1_rpPosts_TitleUrl_"+str(j) texts = bf.find_all('a', id=index) if texts: name = texts[0].string address = texts[0].get('href') result.append(name + ': '+ address) res = [] res.extend([[' '],['鏈表(8道)']]) for i in range(len(result)): if '(鏈表)' in result[i]: res.append(result[i]) res.extend([[' '],['二叉樹(12道)']]) for i in range(len(result)): if '(二叉樹)' in result[i]: res.append(result[i]) res.extend([[' '],['二叉搜索樹(3道)']]) for i in range(len(result)): if '(二叉搜索樹)' in result[i]: res.append(result[i]) res.extend([[' '],['數組(11道)']]) for i in range(len(result)): if '(數組)' in result[i]: res.append(result[i]) res.extend([[' '],['字符串(8道)']]) for i in range(len(result)): if '(字符串)' in result[i]: res.append(result[i]) res.extend([[' '],['棧(3道)']]) for i in range(len(result)): if '(棧)' in result[i]: res.append(result[i]) res.extend([[' '],['遞歸(4道)']]) for i in range(len(result)): if '(遞歸)' in result[i]: res.append(result[i]) res.extend([[' '],['回溯(2道)']]) for i in range(len(result)): if '(回溯)' in result[i]: res.append(result[i]) res.extend([[' '],['其餘(15道)']]) for i in range(len(result)): if '(其餘)' in result[i]: res.append(result[i]) with open('劍指Offer.txt', 'a', encoding='utf-8') as f: for i in range(len(res)): f.writelines(res[i]) f.write('\n') f.close()