华为OD机试真题- 关联子串-2023年OD统一考试(B卷)

题目描述:

给定两个字符串str1和str2,如果字符串str1中的字符,经过排列组合后的字符串中,只要有一个字符串是str2的子串,则认为str1是str2的关联子串。
若str1是str2的关联子串,请返回子串在str2的起始位置;
若不是关联子串,则返回-1。
示例1:
输入:str1="abc",str2="efghicabiii"
输出:5
解释:str2包含str1的一种排列组合("cab"),此组合在str2的字符串起始位置为5(从0开始计数)
示例2:str1="abc",str2="efghicaibii"
输出:-1。
预制条件:

  1. 输入的字符串只包含小写字母;
  2. 两个字符串的长度范围[1, 100,000]之间
  3. 若str2中有多个str1的组合子串,请返回第一个子串的起始位置。

输入描述:

输入两个字符串,分别为题目中描述的str1、str2。

输出描述:

如果str1是str2的关联子串,则返回子串在str2中的起始位置。

如果str1不是str2的关联子串,则返回-1。

若str2中有多个str1的组合子串,请返回最小的起始位置。

补充说明:

输入的字符串只包含小写字母;

两个字符串的长度范围[1, 100,000

你可能感兴趣的:(华为OD机试题库2023年,华为od,算法,python,华为,开发语言)