华为OD机试真题 Java 实现【最多提取子串数目】【2023Q1 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
  • 0

三、输出描述

输出 1 行,包含 1个数字,表示最多可以同时从 A 中挑选多少组能组成 B 的字符串,行末无多余空格。

无需验证输入格式和输入数据合法性。

四、解题思路

1、将字符串A和字符串B转换为字符数组arrA和arrB。

2、初始化计数变量count为0,表示可以同时从A中挑选的组数。

3、使用两个指针i和j分别指向arrA和arrB的起始位置。

4、开始遍历arrA,当指针i小于A的长度时,执行以

你可能感兴趣的:(华为,java,算法,开发语言,面试)