A. 最多提取子串数目

    传统题 1000ms 256MiB

最多提取子串数目

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目解析和算法源码

华为OD机试 - 最多提取子串数目(Java & JS & Python & C & C++)_伏城之外的博客-CSDN博客

题目描述

给定 [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("bac")

用例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")

华为OD模拟机考(E卷)【公开赛】2025/1/12 21:00

未参加
状态
已结束
规则
IOI
题目
3
开始于
2025-1-12 21:00
结束于
2025-1-12 23:30
持续时间
2.5 小时
主持人
参赛人数
14