自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 添加最少的字符让字符串变为回文字符串(1)

添加最少的字符让字符串变为回文字符串(1)题目描述给定一个字符串str,如果可以在str的任意位置添加字符,请返回在添加字符最少的情况下,让str整体都是回文字符串的一种结果。输入描述:输入包含一行字符串,代表str(1≤lengthstr≤5000)str(1 \leq length_{str} \leq 5000)str(1≤lengthstr​≤5000)。输出描述:输出一行,代表返回的字符串。示例1输入ABA输出ABA示例2输入AB输出ABA备注:时间复杂

2020-09-30 12:39:02 1689

原创 数组中两个字符串的最小距离

数组中两个字符串的最小距离题目描述给定一个字符串数组strs,再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1或str2为null,或不在strs中,返回-1。输入描述:输入包含有多行,第一输入一个整数n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105),代表数组strs的长度,第二行有两个字符串分别代表str1和str2,接下来n行,每行一个字符串,代表数组strs (保证题目中出现的所有字符串长度均小于等于10)。输出

2020-09-29 10:42:23 381

原创 翻转字符串(2)

翻转字符串(2)题目描述给一个字符类型的数组chas和一个整数size,请把大小为size的左半区整体右移到右半区,右半区整体移动到左边。输入描述:输入两行,第一行一个整数,代表size,第二行一个字符串,代表chas(1≤size≤lengthchas≤105)chas(1 \leq size\leq length_{chas} \leq 10^5)chas(1≤size≤lengthchas​≤105)输出描述:输出一行字符串,代表翻转后的字符串。示例1输入3abcdefg输出

2020-09-28 11:00:17 182

原创 翻转字符串(1)

翻转字符串(1)题目描述给定字符类型的数组chas,请在单词间做逆序调整。只要做到单词的顺序逆序即可,对空格的位置没有要求。输入描述:输入一行只含字母和空格的字符串,代表chas(1≤lengthchas≤105)chas(1 \leq length_{chas} \leq 10^5)chas(1≤lengthchas​≤105)。输出描述:输出一行字符串,代表逆转顺序后的字符串。示例1输入i am a student输出i ma a tneduts备注:时间复杂度O(n)O(

2020-09-27 13:36:03 174

原创 字符串的调整II

字符串的调整II题目描述给定一个字符类型的数组chas[],chas右半区全是空字符,左半区不含有空字符。现在想将左半区的空格字符串替换成“%20”,假设chas右半区足够大,可以满足替换需要的空间,请完成替换函数。输入描述:输出一行,代表chas的左半区(1≤length(chasleft)≤105)(1 \leq length(chas_{left}) \leq 10^5 )(1≤length(chasleft​)≤105) 。输出描述:输出一行,代表替换后的字符串。示例1输入a b

2020-09-26 14:12:51 377

原创 字符串的调整I

字符串的调整I题目描述给定一个字符串chas[],其中只含有字母字符和“”字符,现在想把所有“”全部挪到chas的左边,字母字符移到chas的右边。完成调整函数。输入描述:输入一行字符串代表chas(1≤lengthchas≤105)chas(1 \leq length_{chas} \leq 10^5 )chas(1≤lengthchas​≤105)。输出描述:输出一行,代表返回的字符串。示例1输入qw**23输出**qw23示例2输入o*f*f*e*r输出****

2020-09-26 13:46:42 365

原创 在有序但是含有空的数组中查找字符串

在有序但是含有空的数组中查找字符串题目描述:给定一个字符串数组strs[],在strs中有些位置为null,但在不为null的位置上,其字符串是按照字典序由小到大出现的。在给定一个字符串str,请返回str在strs中出现的最左位置,如果strs中不存在str请输出“-1”。输入描述:输出包含多行,第一行包含一个整数n代表strs的长度,第二行一个字符串,代表str,接下来n行,每行包含一个字符串构成,字符串只包含小写字符,如果这一行为“0”,代表该行字符串为空,这n行字符串代表strs。(数据保证

2020-09-25 14:23:05 176

原创 字符串的统计字符串

字符串的统计字符串题目描述给定一个字符串str,返回str的统计字符串。例如“aaabbbbcccd”的统计字符串为“a_3_b_4_c_3_d_1”。输入描述:输入一行字符串,代表str,1≤length(str)≤1051\leq length(str) \leq 10^51≤length(str)≤105。输入描述:输出一行字符串,代表统计字符串。示例1输入offerofferzainaliiiiii输出o_1_f_2_e_1_r_1_o_1_f_2_e_1_r_1_z_1_a

2020-09-24 19:41:33 504

原创 将整数字符串转成整数值

将整数字符串转成整数值题目描述给定一个字符串str,如果str符合日常书写的整数形式,并且属于32位整数范围,返回str代表的整数值,否则返回0。输入描述:输出包括一行代表str(1≤length(str)≤100)(1 \leq length(str) \leq 100)(1≤length(str)≤100)。输出描述:输出一行,代表返回的值。示例1输入123输出123示例2输入023输出0示例3输入A13输出0示例4输入2147483647

2020-09-23 15:54:54 210

原创 判断两个字符串是否互为旋转词

判断两个字符串是否互为旋转词题目描述如果一个字符串为str,把字符串的前面任意部分挪到后面形成的字符串交str的旋转词。比如str=“12345”,str的旋转串有“12345”、“45123”等等。给定两个字符串,判断是否为旋转词。输入描述:输出包含三行,第一个两个整数n和m(1≤n,m≤105)(1 \leq n,m \leq10^5)(1≤n,m≤105),分别表示两个字符串的长度。第二行和第三行各输入一个字符串。输出描述:如果两个字符串互为旋转词请输出“YES”,否则输出“NO”。示例

2020-09-22 18:17:37 278

原创 判断两个字符串是否为变形词

判断两个字符串是否为变形词题目描述给定两个字符串str1和str2,如果str1和str2中出现的字符种类出现的一样且每种字符出现的次数也一样,那么str1和str2互为变形词。请判断str1和str2是否为变形词。输入描述:输入包括3行,第一行包含两个整数n,m(1≤n,m≤105)(1 \leq n,m\leq 10^5)(1≤n,m≤105)分别代表str1和str2的长度,第二行和第三行为两个字符串,分别代表str1和str2。输出描述:如果str1和str2互为变形词,请输出“true

2020-09-21 13:39:57 189

原创 N皇后问题

N皇后问题题目描述N皇后问题是指在N*N的棋盘上要摆N个皇后,要求任何两个皇后不同行,不同列也不再同一条斜线上,求给一个整数n,返回n皇后的摆法。输入描述:输出一个整数,代表n(1≤n≤14)n(1 \leq n \leq 14 )n(1≤n≤14)。输出描述:输出一个整数,代表n皇后的种数。示例1输入1输出1示例2输入8输出92备注:时间复杂度O(2n)O(2^n)O(2n),空间复杂度O(1)O(1)O(1) 。题解:参考自:https://www.cn

2020-09-20 22:01:10 125

原创 数组中的最长连续子序列

数组中的最长连续子序列题目描述:给定无序数组arr,返回其中最长的连续序列的长度(要求值连续,位置可以不连续,例如 3,4,5,6为连续的自然数)输入描述:输出两行,第一行包括一个整数n(1≤n≤105)n(1 \leq n \leq10^5)n(1≤n≤105),第二行包含n个整数,分别代表arr[i](1≤arr[i]≤108)arr[i](1 \leq arr[i] \leq 10^8 )arr[i](1≤arr[i]≤108) 。输出描述:输出一个整数,代表最长连续子序列的长度。示例1

2020-09-19 13:59:36 2225

原创 跳跃游戏

跳跃游戏题目描述给定数组arr,arr[i]==k代表可以从位置向右跳1~k个距离。比如,arr[2]==3,代表可以从位置2跳到位置3、位置4或位置5。如果从位置0出发,返回最少跳几次能跳到arr最后的位置上。输入描述:输出包括两行,第一行一个整数n(1≤n≤1e5)n(1 \leq n \leq 1e5 )n(1≤n≤1e5),代表arr数组长度,第二行n个整数代表数组arr[i](1≤arr[i]≤n)arr[i](1 \leq arr[i] \leq n)arr[i](1≤arr[i]≤n)

2020-09-18 21:49:05 108

原创 排成一条线的纸牌博弈问题

排成一条线的纸牌博弈问题题目描述给定一个整型数组arr,代表数值不同的纸牌排成一条线,玩家A和玩家B依次拿走每张纸牌,规定玩家A先拿,玩家B后拿,但是每个玩家每次只能拿走最左和最右的纸牌,玩家A和玩家B绝顶聪明。请返回最后的获胜者的分数。输入描述:输出包括两行,第一行一个整数n(1≤n≤5000)n(1 \leq n \leq 5000 )n(1≤n≤5000),代表数组arr长度,第二行包含n个整数,第i个代表arr[i](1≤arr[i]≤105)arr[i]( 1 \leq arr[i] \l

2020-09-17 21:30:54 414

原创 表达式得到期望结果的组合种数

表达式得到期望结果的组合种数题目描述给定一个只由0(假)、1(真)、&(逻辑与)、|(逻辑或)和^(异或)五种字符组成的字符串express,再给定一个布尔值desired。求出express能有多少种组合方式,可以达到desired的结果。并输出你所求出的总方案数对109+710^{9}+7109+7取模后的值。输入描述:输入两行,第一行包含一个只有0、1、&、|和^组成的字符串。其长度小于500,第二行只有一个布尔值,代表desired。输出描述:输出一个整数,表示取模后的答

2020-09-16 12:39:21 433

原创 数字字符转化为字母组合的种数

数字字符转化为字母组合的种数题目描述给定一个字符串str,str全部由数字字符组成,如果str中的某一个或者相邻两个字符组成的子串值在1~26之间,则这个子串可以转换为一个字母。规定‘1’转换为“A”,“2”转换为“B”…"26"转化为“Z“。请求出str有多少种不同的转换结果,由于答案可能会比较大,所以请输出对109+710^{9}+7109+7取模后的答案。输入描述:输出一行仅有’0‘~’9‘组成的字符串,代表str (0≤length(str)≤100000)\left( 0\leq len

2020-09-15 15:08:06 474

原创 字符串的交错组成

字符串的交错组成题目描述给定三个字符串str1、str2 和aim,如果aim包含且仅包含来自str1和str2的所有字符,而且在aim中属于str1的字符之间保持原来在str1中的顺序属于str2的字符之间保持原来在str2中的顺序,那么称aim是str1和str2的交错组成。实现一个函数,判断aim是否是str1和str2交错组成,如果是请输出“YES”,否则输出“NO”。输入描述:输出三行,分别表示三个字符串str1str1str1,str2str2str2 和 aimaimaim。1≤len

2020-09-14 13:05:03 227

原创 龙与地下城游戏问题

龙与地下城游戏问题题目描述给定一个二维数组map,含义是一张地图,例如,如下矩阵{−2−33−5−101030−5}%\begin{equation} \left\{\begin{array}{ccc} -2 &-3 & 3\\ -5 & -10 & 1\\ 0 & 30 & -5\\\end{array}\right\} %\end{equation}⎩⎨⎧​−2−50​−3−1030

2020-09-13 17:20:46 485 1

原创 最小编辑代价

最小编辑代价题目描述给定两个字符串str1和str2,再给定三个整数ic,dc和rc,分别代表插入、删除和替换一个字符的代价,请输出将str1编辑成str2的最小代价。输入描述:输出三行,第一行和第二行均为一行字符串,分别表示两个字符串str1,str2。(1≤length(str1),length(str2)≤5000)\left( 1\leq length(str1),length(str2) \leq 5000 \right)(1≤length(str1),length(str2)≤5000)

2020-09-12 10:45:10 486

原创 最长公共子串

最长公共子串题目描述给定两个字符串str1和str2,输出两个字符串的最长公共子串,如果最长公共子串为空,输出-1。输入描述:输入包括两行,第一行代表字符串srr1,第二行代表字符串str2。(1≤length(str1),length(str2)≤5000)\left( 1\leq length(str1),length(str2) \leq 5000 \right)(1≤length(str1),length(str2)≤5000)输出描述:输出包括一行,代表最长公共子串。示例1输入1

2020-09-11 17:25:26 121

原创 最长公共子序列

最长公共子序列题目描述给定两个字符串str1和str2,输出连个字符串的最长公共子序列。如过最长公共子序列为空,则输出-1。输入描述:输出包括两行,第一行代表字符串str1,第二行代表str2。(1≤length(str1),length(str2)≤5000)\left( 1\leq length(str1),length(str2) \leq 5000\right)(1≤length(str1),length(str2)≤5000)输出描述:输出一行,代表他们最长公共子序列。如果公共子序列的

2020-09-10 11:12:50 152

原创 汉诺塔问题

汉诺塔问题题目描述:给定一个整数n,代表汉诺塔游戏中从小到大放置n个圆盘,假设开始所有圆盘都在左边的柱子上,那么用最优的办法把所有圆盘都移动到右边的柱子上的过程,就称为最优移动轨迹。给定一个整型数组arr, 其中只含有1、2和3,代表所有圆盘目前的状态,1代表左柱,2代表中柱,3代表右柱,a[i]的值代表第i+1个圆盘的位置(a[i]下标从0开始)。比如,arr=[3,3,2,1], 代表第1个圆盘在右柱上、第2个圆盘在右柱上、第3个圆盘在中柱上、第4个圆盘在左柱上。如果arr代表的状态是最优移动轨迹过

2020-09-09 12:56:43 332

原创 最长递增子序列

最长递增子序列题目描述:给定数组arr,设长度为n,输出arr的最长递增子序列。(如果有多个答案,请输出其中字典序最小的)输入描述:输出两行,第一行包括一个正整数n(n<=100000),代表数组长度。第二行包括n个整数,代表数组arr(1≤arri≤1e9)arr \left(1 \leq arr_i \leq 1e9 \right)arr(1≤arri​≤1e9) 。输出描述:输出一行。代表你求出的最长的递增子序列。示例1输入92 1 5 3 6 4 8 9 7输出1 3

2020-09-07 17:10:42 567

原创 换钱的方法数

换钱的方法数题目描述给定数组arr,设数组长度为n,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim,代表要找的钱数,求换钱的方法数有多少种。由于方法的种数比较大,所以要求输出对 109+710^9+7109+7 进行取模后的答案。输入描述:输出包括两行,第一行包括两个整数 n(0≤n≤1000)n(0 \leq n \leq 1000)n(0≤n≤1000) 和 aim(0≤aim≤20000)aim(0 \leq aim \leq

2020-09-06 13:08:49 180

原创 换钱的最少货币数

换钱的最少货币数题目描述给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个 aim,代表要找的钱数,求组成aim的最少货币数。输入描述:输入包括两行,第一行两个整数n(0<=n<=1000)代表数组长度和aim(0<=aim<=5000),第二行n个不重复的正整数,代表arr(1≤arri≤109)(1≤arri≤109)arr\left( 1 \leq arr_i \leq 10^9 \right)(1≤a

2020-09-05 16:50:17 295

原创 矩阵的最小路径和

矩阵的最小路径和题目描述:给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。输入描述:第一行输入两个整数 n 和 m,表示矩阵的大小。接下来 n 行每行 m 个整数表示矩阵。输出描述:输出一个整数表示答案。示例1输入4 41 3 5 98 1 3 45 0 6 18 8 4 0输出12备注:1≤n,m≤20001 \leq n,m \leq 20001≤n,m≤

2020-09-04 12:04:29 235

原创 斐波那契数列问题的递归和动态规划3

斐波那契数列问题的递归和动态规划3题目描述假设农场中成熟的母牛每年只会生 1 头小母牛,并且永远不会死。第一年农场中有一只成熟的母牛,从第二年开始,母牛开始生小母牛。每只小母牛 3 年之后成熟又可以生小母牛。给定整数 n,求出 n 年后牛的数量。输入描述:输入一个整数 n。输出描述:输出 n 年后牛的数量对 1e9 + 7 取模的值。示例1输入6输出9备注:1≤n≤10181 \leq n \leq 10^{18}1≤n≤1018题解:递推公式: F(n)=F(n−1)+

2020-09-03 15:34:26 326

原创 斐波那契数列问题的递归和动态规划2

斐波那契数列问题的递归和动态规划2题目描述给出一个整数 n,代表台阶数,一次可以跨 2 个或者 1 个台阶,请输出有多少种走法。输入描述:第一行一个整数 n。输出描述:输出走法数对 1e9 + 7 取模的值。示例1输入3输出3备注:1≤n≤10181 \leq n \leq 10^{18}1≤n≤1018题解:跟前面一题 斐波那契数列问题的递归和动态规划 基本一致,递推公式:F(n)=F(n-1)+F(n-2) ,唯一的不同就是 F(1)=1,F(2)=2。代码:#i

2020-09-02 10:26:39 175

原创 斐波那契数列问题的递归和动态规划

斐波那契数列问题的递归和动态规划题目描述给出一个整数 n,请输出斐波那契数列的第 n 项对 1e9 + 7 取模的值。输入描述:第一行一个整数 n。输出描述:输出第 n 项对于 1e9 + 7 取模的值。示例1输入1输出1备注:1≤n≤10181 \leq n \leq 10^{18}1≤n≤1018题解:数据范围意味着我们没法用 O(n)O(n)O(n) 的解法,只能考虑 O(logn)O(logn)O(logn) 的解法。考虑斐波那契数列的递推公式:F(n)=F(n−

2020-09-01 17:21:44 381

空空如也

空空如也

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

TA关注的人

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