Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mrjiangqiao/Interview_coding

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interview_coding

Interview coding practice, implement with python3, tend to CV direction

file lists

DistanceToNextLargernum.py

  1. 问题描述 输入整数序列,最大100,输出当前元素到之后第一个比他大的元素的距离, 没有更大的话输出-1,比如输入1,20,10,40输出1,2,1,-1,时间复杂度不大于O(n)

dp_forBracketStaining.py

  1. 问题描述 成对括号染色问题:Codeforced 149D 给出你一个正确的括号序列(正确的括号序列指的是,对于整个序列,有且只有一种方式使得每个括号都可以完成匹配),初始状态下,所有括号都是红色的,但是很显然这样太丑了。 RGB是一种很普遍的染色方案,现在需要你把部分括号染成绿色或者蓝色,要求染色完成后的括号满足以下条件: (1) 每一对相匹配的括号中有且只有一个括号可以被染成绿色或蓝色,另一个保持红色。 (2) 相邻的括号不能同为绿色或者同为蓝色。 请问你共有多少种符合条件的染色方案,由于答案可能很大,所以请你输出方案数对998244353取模的结果。
  2. 问题解析
  • 利用堆栈入栈出栈找到互相匹配的括号
  • 利用动态规划dp对问题进行分解
  • f[x,y,i,j]表示给x位置开始y位置结束的括号序列,x处染i颜色,y处染j颜色时候的共有多少种染色方案,初始化为0
  • 最基础子问题为y=x+1的情况,此时正确染色情况分为4中且染色方案数量均为1; 然后每个大问题可以分解 (1)x,y正好匹配时候的情况:f[x,y,i,j]与f[x+1,y-1,i,j]存在联系 (2)x,y不匹配的情况:寻找到与x匹配的位置mid_pair,则
f[x,y,i,j] = f[x,y,i,j] + f[x,mid_pair,i,m]*f[mid_pair+1,y,n,j]

dp_Min_Editdistance.py

  1. 问题描述 计算两个字符串的最小编辑距离,最小编辑距离是指通过最少的以下操作将一个字符串变为另一个字符串的操作数量:
    • 删除一个字符
    • 增加一个字符
    • 将一个字符变为另一个字符
  2. 问题解析 可以根据当前两个位置上的元素是否一致,然后根据子串转换的最小编辑距离获得当前串转换需要的最小编辑距离

dp_prac1.py

  1. 问题描述 拿出装有货物的保温箱,需在最短的时间内用最少的保温箱将货物装好。 我们把问题简单描述一下:

    • 每个货物占用空间都一模一样
    • 保温箱的最大容量是不一样的,每个保温箱由两个值描述: 保温箱的最大容量 bi ,当前已有货物个数 ai ,(ai<=bi)
    • 货物转移的时候,不必一次性全部转移,每转移一件货物需要花费 1秒 的时间
  2. 问题解析 dp[cpaticity][2],其中列里的两维对应为[k,food],表示装capticity的东西,需要最少k个保温箱,而这k个箱重原先有food的已装货物 初始化时,dp[0]=[0][0], 其他初始化为[len(food),0],依次遍历最终包含每个保温箱时的情况,对dp进行不断地更新

dp_prac2.py

  1. 问题描述 现在有两个串S和T,你需要从S中取出一个子串,并且从T中取出一个子序列,使得两个取出来的串一样。这样不同的方案有多少?答案对10^9+7取模。 子串的意思是在字符串中截取连续一段,比如bc是abcd的子串。 子序列的意思是在字符串中截取不一定连续的几段(也可以是一段)连在一起,比如ac是abcd的子序列。 注意,在本题中,两种取法位置不同,但是取出来的字符串是相同的情况算作两种不同的情况,详见样例解释。
    • 输入 输入包含两个字符串S,T 一行一个字符串 |S|,|T|≤5000

    • 输出 输出包含一个数,代表答案对10^9+7取模。

    • 样例输入 aaa aaa

    • 样例输出 16

    • 提示 样例解释 S有6个子串,T有7个子序列。S的6个子串:a(1),a(2),a(3),aa(12),aa(23),aaa(123); T的7个子序列:a(1),a(2),a(3),aa(12),aa(23),aa(13),aaa(123); 可以得知,如果这个相同的串为a,有3×3种取法,如果这个相同的串为aa,有2×3种取法,如果这个相同的串为aaa,有1×1种取法。总共有16种取法。

find_kth_in_specific_array.py

  1. 问题描述 找到N行M列矩阵中第k大的数字
  2. 问题解析
  • 部分有序序列可以使用二分查找来进行处理
  • 返回数组中小于等于当前中间值的数字的数量,从而不断地缩小查找范围更新中间值

FindMaxValueRangeInList.py

  1. 问题描述 给定一个数组序列,需要求选出一个区间,使得该区间是所有区间中经过如下计算的值最大的一个: 区间中的最小数*区间所有数的和 最后程序输出经过计算后的最大值即可,不需要输出具体的区间。 如给定序列 [6 2 1]则根据上述公式,可得到所有可以选定各个区间的计算值:
    [6] = 6 * 6 = 36; [2] = 2 * 2 = 4; [1] = 1 * 1 = 1; [6,2] = 2 * 8 = 16;
    [2,1] = 1 * 3 = 3; [6, 2, 1] = 1 * 9 = 9; 从上述计算可见选定区间[6],计算值为36, 则程序输出为36。 区间内的所有数字都在[0, 100]的范围内;
  2. 问题解析 利用单调栈来解决问题,最后的结果必为以某个数为最后区间的最小数获得结果,因此,依次将列表中各元素序号进入单调栈,当栈顶元素比当前元素大时进行出栈操作,并以当前出栈元素为最小值计算对应区间内的数值大小。直到栈为空或栈顶元素不再大于当前值时将当前值入栈。为了保障最后列表最后一个元素可以出栈,将列表末端添加一个列表重元素的最小值0。

FindMedianSortedArrays.py

  1. 问题描述 寻找两个有序序列合并后的中值问题 Leetcode 4,要求时间复杂度 O(log(m + n)),m与n分别为两个序列的长度
  2. 问题解析 将两个有序序列分别取midi,midj将原序列分为两个部分,并合并左侧部分作为min_left,合并右侧部分(包含midi与midj处的值)作为max_right。 令左右两部分满足左边的最大值小于右侧的最小值,并保障两个部分中元素数量差值小于等于1。 满足上述的序列中很容易获得两个有序序列合并后的中值。

findsensitivewords.py

  1. 问题描述 替换字符串中敏感词为对应字符数量的*号,敏感词不区分大小写 2、解决方法 此处利用了python中的re工具包中的相关函数来实现,注意其中matchfunc函数的写法以及sub函数中flags=re.I参数的作用

findsimilarstr.py

  1. 问题描述 将字符串变换具有相似模式的顺序字符串,如将“efggac”转换为“abccde”

findthelongestSubstring.py

  1. 功能描述 lengthOfLongestSubstring(self, s: str) 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 minWindow(self, s: 'str', t: 'str') 从S串中找到覆盖t串全部字符地最小子串 lengthOfLongestSubstringTwoDistinct(self, s: str) 寻找一个字符串中最多包含两个不同字符地最长子串

mergesort_and_quicksort.py

  1. 功能描述 快速排序以及归并排序的简单实现

NMS.py

  1. 功能描述 python手写NMS实现代码

re_char2ascii.py

  1. 功能描述 将excel表格的单元格描述方式进行转换 change1()函数将“R15C29”转换为对应的“AC15” change2()函数将“AC15”转换为对应的“R15C29”

re_pra1

  1. 功能描述 找出一个字符串中的数字+["mg", "kg", "g", "ms", "s", "h","m"],其中"mg"与"ms"优先于"m"匹配,注意数字有可能为小数的情况

Singlelist.py

  1. 功能描述 使用python实现单链表,转载,对应博客内容请参考[博客链接](https://www.cnblogs.com/yudanqu/)

About

Interview coding practice, implement with python3

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages