算法
每日一题,面试不愁~
Hebeyan
这个作者很懒,什么都没留下…
展开
-
有效括号-python
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。利用列表的pop先比较后入的数据,如果在字典中找不到,直接返回false。每个右括号都有一个对应的相同类型的左括号。左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。原创 2023-02-23 19:18:49 · 148 阅读 · 0 评论 -
力扣455 分发饼干
力扣455原创 2023-02-21 15:04:10 · 93 阅读 · 1 评论 -
python 实现青蛙跳台阶问题
剑指offer习题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。面试时采用递归,面试官说递归的执行速度不行,让我换一个思路,然后就没有然后了....被pass掉的方法:class Solution: def jumpFloor(self, number): while number>0: if number==1: return 1原创 2020-05-11 15:50:10 · 1389 阅读 · 0 评论 -
python实现数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字
剑指offer:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。# -*- coding:utf-8 -*-class Solution: def MoreThanHalfNum_Solution(self, numbers): # write code here # -*- coding:utf-...原创 2020-05-12 18:15:05 · 1003 阅读 · 2 评论 -
python找出连续的最长的字母串
思路:将字母按照顺序写好赋予变量alpha,再遍历给定字符串a中的值,如果不在alpha中就将其写入列表中,这样做会导致列表中的每个元素需要删除最后一个字母才是正确的顺序坑1:for循环不能改变循环变量的值改为while循环坑2:当给的字符串正好是最后的几个字符为最长连续字母,也应将其加到连续字母列表中,且最后一个字母是连续字母,不需pop删除坑3:如果给定字符串有两个最长长度一样的顺序字母,只能找出靠后的一个,暂未解决def con_str(a): alpha='abcdefghi..原创 2020-05-10 18:38:49 · 1383 阅读 · 0 评论 -
剑指offer:请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
将二维列表中的值全部拿出来写入一个一维列表中,排序后,二分法查找是否有目标值class Solution: def Find(self, target, array): l=[] for i in array: for j in i: l.append(j) l.sort() min=0 max=len(l)-1 while min<=ma...原创 2020-05-13 12:09:56 · 545 阅读 · 0 评论 -
python实现二维数组查找目标值
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序, 每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组 和一个整数,判断数组中是否含有该整数。 def find(target,array):if (len(array)==0 or len(array[0])==0):return ‘数组不能为空’big = len(array)small = len(array[0])i=0j=small-1while(i=0):if array[i]原创 2020-12-25 19:59:26 · 1488 阅读 · 2 评论 -
python实现斐波那契数列
def fi(x):if x<=2:return xfirst=1second=2third=0for i in range(4,x+1):third = first + secondfirst =secondsecond =thirdreturn thirdprint(fi(6))原创 2021-01-12 19:59:33 · 258 阅读 · 0 评论 -
剑指offer:给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]xk[1]x...xk[m]可
class Solution: def cutRope(self, number): # write code here if number<4: return number-1 elif number==4: return 4 ret=1 while number>4: ret*=3 number-=3...原创 2020-05-13 11:49:24 · 1771 阅读 · 0 评论 -
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。#栈:后入先出 列表的append和pop是栈的实现#队列:先入先出class Solution(object):def init(self):self.stack1 = []self.stack2 = []def push(self,value): self.stack1.append(value)def delete(self): if not self.stack1:原创 2021-01-08 19:20:13 · 109 阅读 · 0 评论