LeetCode 1055. 形成字符串的最短路径
题目描述
对于任何字符串,我们可以通过删除其中一些字符(也可能不删除)来构造该字符串的 子序列 。(例如,“ace” 是 “abcde” 的子序列,而 “aec” 不是)。
给定源字符串 source 和目标字符串 target,返回 源字符串 source 中能通过串联形成目标字符串 target 的 子序列 的最小数量 。如果无法通过串联源字符串中的子序列来构造目标字符串,则返回 -1。
示例 1:
输入:source = “abc”, target = “abcbc”
输出:2
解释:目标字符串 “abcbc” 可以由 “abc” 和 “bc” 形成,它们都是源字符串 “abc” 的子序列。
1 <= source.length, target.length <= 1000
source 和 target 仅包含英文小写字母。
一、解题关键词
二、解题报告
1.思路分析
2.时间复杂度
3.代码示例
class Solution {
public int shortestWay(String source, String target) {
int len = source.length();
int j = 0;
int count = 0;
while (j < target.length()) {
int prev = j;
for (int i = 0; i < len; i++) {
if (j < target.length() && source.charAt(i) == target.charAt(j)) {
j++;
}
}
if (prev == j) {
return -1;
}
count++;
}
return count;
}
}
2.知识点