最多提取子串数目(100)
题目描述:
给定由 [a-z] 26个英文小写字母组成的字符串A和B,其中A中可能存在重复字母,B中不会存在重复字母。现从字符串A中按规则挑选一些字母,可以组成字符串B。挑选规则如下:
1) 同一个位置的字母只能被挑选一次
2) 被挑选字母的相对先后顺序不能改变
求最多可以同时从A中挑选多少组能组成B的字符串
输入描述:
输入为2行,第1行输入字符串A,第2行输入字符串B,行首行尾无多余空格
其中A、B均由[a-z] 26个英文小写字母组成
0<A.length<100,A中可能包含重复字母
0<B.length<10,B中不会出现重复字母
输出描述:
输出1行,包含1个数字,表示最多可以同时从A中挑选多少组能组成B的字符串
行末无多余空格
补充说明:
无需验证输入格式和输入数据合法性
示例1:
输入:
badc
bac
输出:
1
说明:
从字符串A("badc")中可以按字母相对先后顺序取出字符串B("bac")
示例2:
输入:
badc
abc
输出:
0
说明:
从字符串A("badc")中无法按字母相对先后顺序取出字符串B("abc")
示例3:
输入:
aabbcxd
abcd
输出:
1
说明:
从字符串A("aabbcxd")中挑选一组B("abcd")后,A中剩余字符串为"abx",无法再挑出"abcd"
示例4:
输入:
ababcecfdc
abc
输出:
2
按如下步骤(步骤不唯一),可以同时从字符串A("ababcecfdc")中最多取出两个B("abc"),其中下划线标注的是每步提取的字母:
剩余的"efdc"无法继续提取"abc",结果为2。
示例5:
输入:
aaa
a
输出:
3
说明:
从字符串A("aaa")中可以挑选3个字符串B("a")
通信误码(100)
题目描述:
信号传播过程中会出现一些误码,不同的数字表示不同的误码ID,取值范围为1~65535,用一个数组记录误码出现的情况。每个误码出现的次数代表误码频度,请找出记录中包含频度最高误码的最小子数组长度。
输入描述:
误码总数目:取值范围为0~255,取值为0表示没有误码的情况。、
误码出现频率数组:误码ID范围为1~65535,数组长度为1~1000。
输出描述:
包含频率最高的误码最小子数组长度
示例1:
输入:
5
1 2 2 4 1
输出:
2
说明:
频度最高的有1和2,频度是2(出现的次数都是2)。可以包含频度最高的记录数组是[2 2]和[1 2 2 4 1],最短是[2 2],最小长度为2
示例2:
输入:
7
1 2 2 4 2 1 1
输出:
4
说明:
频度最高的是1和2。最短的是:[2 2 4 2]
区块链文件转储系统(200)
题目描述:
区块链底层存储是一个链式文件系统,由顺序的N个文件组成,每个文件的大小不一,依次为F1,F2...Fn。随着时间的推移,所占存储会越来越大。云平台考虑将区块链按文件转储到廉价的SATA盘,只有连续的区块链文件才能转储到SATA盘上,且转储的文件之和不能超过SATA盘的容量。假设每块SATA盘容量为M,求能转储的最大连续文件大小之和。
输入描述:
第一行为SATA盘容量M,1000<=M<=1000000
第二行为区块链文件大小序列F1,F2...Fn。其中 1<=n<=100000, 1<=Fi<=500
输出描述:
求能转储的最大连续文件大小之和
示例1:
输入:
1000
100 300 500 400 400 150 100
输出:
950
说明:
最大序列和为950,序列为[400,400,150]
示例2:
输入:
1000
100 500 400 150 500 100
输出:
1000
说明:
最大序列和为1000,序列为[100,500,400]