牛客网一站通offer (一)字符串变形 1. 题目: 对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形.首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把着个字符串中由空格隔开的单词反序,同时反转每个字符的大小写.比如"Hello World"变形后就变成了"wORLD hELLO". 输入描述: 给定一个字符串s以及它的长度n(1≤n≤500) 输出描述: 请返回变形后的字符串.…
二维数组中的查找: 题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 两种思路各有优势: 1.行枚举列二分O(nlogm)(列二分行枚举O(mlogn)) 2.从左下角或右上角移动O(m+n) 如果n,m一个特别大一个特别小选择方案1效率很高 其他情况选择第2中方案   替换空格: 题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We A…
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过去了,小Ho查看自己的提交记录发现有N天因为贪玩忘记提交了.于是小Ho软磨硬泡.强忍着小Hi鄙视的眼神从小Hi那里要来M张"补提交卡".每张"补提交卡"都可以补回一天的提交,将原本没有提交程序的一天变成有提交程序的一天.小Ho想知道通过利用这M张补提交卡,可以使自己的"最长连续提交天数…
2019年牛客多校第一场B题 Integration 题意 给出一个公式,求值 思路 明显的化简公式题,公式是分母连乘形式,这个时候要想到拆分,那如何拆分母呢,自然是裂项,此时有很多项裂项,我们不妨从小数据尝试,经过搬砖搬到3-4个连乘式相消的时候,就可以发现规律了!(耐心耐心耐心,草稿纸书写规范) 公式化简过程见(懒狗是这样):https://blog.csdn.net/dillonh/article/details/96445321 #include<bits/stdc++.h> #def…
数组中只出现过一次的数字 牛客网 剑指Offer 题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次.请写程序找出这两个只出现一次的数字. def FindNumsAppearOnce(self, array): if array == None or len(array) <= 0: return [] resultExOr = self.ExOr(array) i = 0 while resultExOr and i <= 32: i += 1 resultExOr = r…
数组中出现次数超过一半的数字 牛客网 剑指Offer 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2.如果不存在则输出0. class Solution: #run:32ms memorry:5624k def MoreThanHalfNum_Solution(self,numbers): lenN = len(numbers) if numbe…
数据流中的中位数 牛客网 剑指Offer 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值.我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数 class Solution: def __init__(self): self.left = [] self.right = [] self.count = 0 d…
数字在排序数组中出现的次数 牛客网 剑指Offer 题目描述 统计一个数字在排序数组中出现的次数. class Solution: def GetNumberOfK(self, data, k): if data == None or data == []: return 0 if len(data) == 1 and k!=data[0]: return 0 lenA = len(data) count = 0 if data[lenA/2] > k: return self.GetNumbe…
数值的整数次方 牛客网 剑指Offer 题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方 class Solution: #run:23ms memory:5728k def Power(self, base, exponent): flag = 0 if base == 0: return False if exponent == 0: return 1 if exponent < 0: flag = 1 ret = 1 a…
按之字形顺序打印二叉树 牛客网 剑指Offer 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def Print(self,root): if not root:…