·给一个由数字组成的字符串。写一个函数求出其可能恢复为的所有IP地址。
格式:
第一行输入一个由数字组成的字符串 T,最后由这个字符串所能形成的所有的 IP 地址的数组。
样例输入
T = "25525511135"
样例输出
[
"255.255.11.135",
"255.255.111.35"
]
·给定 n 个不同的正整数,整数 k(k< = n)以及一个目标数字。在这 n 个数里面找出 k 个数,使得这 k 个数的和等于目标数字,写一个函数实现找到不同的方案的数量。
格式:
输入第一行输入一个整数数组,第二行输入一个整数 k ,第三行输入一个整数 target最后输出使得数组中不同的 k 个数的和为 target 的种类。
样例输入
[ 1,2,3,4 ]
k = 2
target = 5
样例输出
2
·给你一个没有排序的数组,请将原数组就地重新排列满足如下性质:
nums[0] <= nums[1] >= nums[2] <= nums[3]....
请写一个函数实现此排序功能。
注意事项:
请就地排序数组,也就是不需要额外数组
格式:
输入第一行输入一个带排序的数组nums,最后输出按照要求排序后的数组序列。
样例输入
nums = [ 3,5,2,1,6,4 ]
样例输出
[ 1,6,2,5,3,4 ]
·给一个二维的矩阵,包含 'X' 和 'O',写一个函数找到找到所有被 'X' 围绕的区域,并用 'X' 填充满。
格式:
第一行输入一个由 ‘X’ 和 ‘O’ 的数组,最后输出用 ‘X’ 填充完的数组。
样例输入
X X X X
X O O X
X X O X
X O X X
样例输出
X X X X
X X X X
X X X X
X O X X
·给你两个字符串 S 和 T, 判断他们是否只差一步编辑。即两个字符串是否只有一个字符不同。编写一个函数实现此功能。
格式:
输入第一行输入一个字符串 S,第二行输入一个字符串 T,最后输出是否可以只差一步编辑,如果可以输出 true,如果不可以则输出 false。
样例输入
S = "ade"
T = "aDe"
样例输出
True
·写一个函数找出一个序列中乘积最大的连续子序列,其中序列中至少包含一个数)。
格式:
第一行输入一个数组,最后依次输出最大乘积的子序列及其乘积的大小。
样例输入
[ 2,3,-2,4 ]
样例输出
[ 2,3 ]
6
·给一个非负整数 n, 用单词打印数字,写一个方法输出用来表示的数字的单词。
格式:
第一行输入一个非负整数,最后用单词打印出数字。
样例输入
n = 125
样例输出
one hundred twenty five
·给出一个字符串 s 和一个词典,写一个函数判断字符串 s 是否可以被空格切分成一个或多个出现在字典中的单词。
格式:
输入行输入一个字符串 s 和一个字典 dict,最后输出字符串 s 是否可以被空格切分成一个或多个出现在字典中的单词。如果可以则输出 true,不可以则输出 false。
样例输入
s = "lintcode"
dict = [ "lint","code" ]
样例输出
True
·给一个整数数组,写一个函数实现在数组中找到第 k 大的元素。
注意事项:
你可以交换数组中的元素的位置。
格式:
输入依次输入一个整数数组和一个整数 k ,最后输出数组中第 k 大的元素。
样例输入
[ 9,3,2,6,11]
k = 1
样例输出
11
·给定 n 和 k,写一个函数,求123..n 组成的排列中的第 k 个排列。
注意事项:1 ≤ n ≤ 9
格式:
第一行输入一个整数 n,第二行输入一个整数 k,最后输出 n 的第k 个全排列。
样例输入
n = 3
k = 4
样例输出
231
·给出一个整数数组,写一个函数将数组堆化。堆化操作就是把它变成一个最小堆数组。对于堆数组A,A[0] 是堆的根,并对于每个 A[i],A [i * 2 + 1] 是 A[i] 的左儿子并且 A[i * 2 + 2] 是A[i] 的右儿子。
说明:
什么是堆?
·堆是一种数据结构,它通常有三种方法:push, pop 和top。其中,“push” 添加新的元素进入堆,“pop” 删除堆中最小/最大元素,“top” 返回堆中最小/最大元素。
什么是堆化?
·把一个无序整数数组变成一个堆数组。如果是最小堆,每个元素 A[i],我们将得到 A[i * 2 + 1] >= A[i] 和 A[i * 2 + 2] >= A[i]
如果有很多种堆化的结果?返回其中任何一个。
格式:
输入行输入一个整数数组,最后输出经过堆化后的数组。
样例输入
[ 3,2,1,4,5]
样例输出
[ 1,2,3,4,5]