华为OD刷题流水账(2)

最多提取子串数目(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:

输入:

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]




©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容