自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Python 简化路径

问题描述以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径请注意,返回的规范路径必须始终以斜杠 / 开头,并且两个目录名之间必须只有一个斜杠 /。最后一个目录名(如果存在)不能以 / 结尾。此外,规范路径必须是表示绝对路径的最短字符串。

2020-09-23 17:02:22 385

原创 python 字符串的排列

问题描述:给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。输入: s1 = “ab” s2 = “eidbaooo”输出: True解释: s2 包含 s1 的排列之一 (“ba”).输入: s1= “ab” s2 = “eidboaoo”输出: False注意:输入的字符串只包含小写字母两个字符串的长度都在 [1, 10,000] 之间解决方法:# 基本思路是 比较 s1中的每个字母在

2020-09-23 16:17:16 414

原创 Python 无重复字符的最长子串

问题描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。解答:class Sol

2020-09-23 14:05:25 652

原创 Python DP问题 母牛的故事

问题描述:有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?# -*- coding: utf-8 -*-# 当前的牛数 = 上一年的牛数 + 新生的牛数# 新生的牛数 = 三年前的牛数year_count = 5DP_count = [1 for i in range(year_count)]def cow_born(): current_year = 1 while curre

2020-09-18 18:58:40 539

原创 Python DP问题 数塔问题

问题描述:在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和 最大是多少?解决方法:# -*- coding: utf-8 -*-# [9]# [12, 15]# [10, 6, 8]# [2, 18, 9, 5]# [19, 7, 10, 4, 16]# DP matrix Recorddef get_max_num(num_tree): row = len(

2020-09-18 17:58:27 1081

原创 Python DP算法 龙与地下城游戏问题

问题描述:给定一个二维数组map,含义是一张地图,例如如下,矩阵:  -2  -3  3  -5 -10 1  0  30 -5  游戏规则如下:  骑士从左上角出发,每次只能向右或者向下走,最后到达右下角见到公主。地图中每个位置的只代表骑士要遭遇的事。如果是负数,表示此处有怪兽,要让骑士损失血量。如果是非负数,表示此处有血瓶,能让骑士回血。骑士从左上角到右下角的过程,走到任何一个位置,血量都不能少于1。为了保证骑士能顺利见到公主,初始血量至少是多少?根据map,返回初始血量。解法

2020-09-18 17:22:35 720

原创 Python 快速排序

def quick_sort(unsort_list): # 基线条件:为空或只包含一个元素的数组是“有序”的 if len(unsort_list) < 2: return unsort_list else: # 递归条件 pivot = unsort_list[0] # 由所有小于基准值的元素组成的子数组 less = [i for i in unsort_list[1:] if i &.

2020-09-14 15:54:20 79

原创 Python插入排序

# -*- coding:UTF-8 -*-def insert_sort(unsort_lst): for j in range(1, len(unsort_lst)): i = j while i > 0: if unsort_lst[i] < unsort_lst[i - 1]: unsort_lst[i], unsort_lst[i - 1] = unsort_lst[i - 1].

2020-09-13 21:34:53 59

原创 Python选择排序

def select_sort(unsort_list): # 当前指针所在位置 current_index = 0 # 总循环次数 for i in range(len(unsort_list) - 1): # 存储最小值的指针所在位置 min_value_index = 0 # 从头到尾的循环次数 for j in range(current_index, len(unsort_list)): .

2020-09-13 19:03:32 51

原创 Python 冒泡排序

def bubble_sort_new(unsort_lst): n = len(unsort_lst) # 一共循环的次数 for j in range(n - 1): # 单次循环从头走到尾 for i in range(0, n - 1 - j): if unsort_lst[i] > unsort_lst[i + 1]: unsort_lst[i], unsort_lst[i.

2020-09-12 21:31:30 46

原创 Python合并两个有序列表

问题描述:Python合并两个有序不重复的列表,并保持原来的顺序。def sorted_list(A, B): sorted_lst = list() index_A = 0 index_B = 0 while True: if index_A == len(A) - 1 or index_B == len(B) - 1: break if A[index_A] > B[index_B]:

2020-09-10 16:17:33 228

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除