oh-my-python
============
[![GitHub forks](https://img.shields.io/github/forks/lesywix/oh-my-python.svg)](https://github.com/lesywix/oh-my-python/network)
[![GitHub stars](https://img.shields.io/github/stars/lesywix/oh-my-python.svg)](https://github.com/lesywix/oh-my-python/stargazers)
[![GitHub license](https://img.shields.io/github/license/lesywix/oh-my-python.svg)](https://github.com/lesywix/oh-my-python/blob/master/LICENSE)
《剑指offer》中的面试题的Python解决方案及总结,包含unittest单元测试;Python数据结构与算法等常见知识汇总。使用的Python版本为3.6。
# 目录
## 剑指offer题解
1. [Python实现单例模式](target_offer/singleton/)
2. [找出数组中重复的数字](target_offer/003-数组中重复的数字/)
3. [二维数组中查找](target_offer/004-二维数组中查找/)
4. [替换空格](target_offer/005-替换空格/)
5. [从尾到头打印链表](target_offer/006-从尾到头打印链表/)
6. [重建二叉树](target_offer/007-重建二叉树/)
7. [二叉树的下一个节点](target_offer/008-二叉树的下一个节点/)
8. [用两个栈实现队列(两个队列实现栈)](target_offer/009-用两个栈实现队列(两个队列实现栈)/)
9. [斐波那契数列及青蛙台阶跳](target_offer/010-斐波那契数列/)
10. [旋转数组中最小数字](target_offer/011-旋转数组中最小数字/)
11. [矩阵中的路径](target_offer/012-矩阵中的路径/)
12. [机器人运动范围](target_offer/013-机器人运动范围/)
13. [剪绳子](target_offer/014-剪绳子/)
14. [二进制中一的个数](target_offer/015-二进制中一的个数/)
* [用一条语句判断一个整数是不是2的整数次方](target_offer/015-二进制中一的个数/relevant1.py)
* [判断两个数的二进制表示有多少位不一样](target_offer/015-二进制中一的个数/relevant2.py)
16. [数值的整数次方](target_offer/016-数值的整数次方/power.py)
17. [打印从1到最大的n位数](target_offer/017-打印从1到最大的n位数/print_max.py)
18. [删除链表节点](target_offer/018-删除链表节点/)
* [删除链表节点](target_offer/018-删除链表节点/delete_node.py)
* [删除链表重复节点](target_offer/018-删除链表节点/delete_duplicate_node.py)
19. [正则表达式匹配](target_offer/019-正则表达式匹配/re_fullmatch.py)
20. [表示数值的字符串](target_offer/020-表示数值的字符串/is_numeric.py)
21. [使数组中奇数位于偶数前面](target_offer/021-使数组中奇数位于偶数前面/resort.py)
22. [链表中倒数第 K 个节点](target_offer/022-链表中倒数第k个节点/knode.py)
23. [链表中环的入口节点](target_offer/023-链表中环的入口节点/meeting_node.py)
24. [反转链表](target_offer/024-反转链表/reverse_node.py)
* [链表成对反转](target_offer/024-反转链表/reverse_node2.py)
25. [合并两个排序链表](target_offer/025-合并两个排序的链表/merge_sorted_node.py)
26. [树的子结构](target_offer/026-树的子结构/sub_structure_tree.py)
27. [二叉树的镜像](target_offer/027-二叉树的镜像/mirror_of_binary_tree.py)
28. [对称的二叉树](target_offer/028-对称的二叉树/is_symmetrical.py)
29. [顺时针打印矩阵](target_offer/029-顺时针打印矩阵/print_metrix.py)
30. [包含 min 函数的栈](target_offer/030-包含min函数的栈/min_stack.py)
31. [栈的压入弹出序列](target_offer/031-栈的压入弹出序列/stack_pop_push_order.py)
32. [从上到下打印二叉树](target_offer/032_print_tree.py)
33. [二叉搜索树的后序遍历](target_offer/033_squence_bst.py)
## 常见算法
- [排序算法集合](sort.py)
- [二分查找](binary_search.py)
- [二叉树遍历](binary_tree.py)
- [合并两个有序列表](merge_list.py)
- [杨氏矩阵查找](yang_matrix_search.py)