【发布时间】:2019-11-26 18:38:23
【问题描述】:
Alice 有两个字符串,初始和目标。她可以从初始字符中删除一些字符,这将为她提供该字符串的子序列。没有删除的字符串仍被视为其自身的子序列。给定这两个字符串,你能找到初始子序列的最小数量,当它们附加在一起时,将形成目标?
【问题讨论】:
-
陈述你的家庭作业并不是在问问题。
标签: string subsequence
Alice 有两个字符串,初始和目标。她可以从初始字符中删除一些字符,这将为她提供该字符串的子序列。没有删除的字符串仍被视为其自身的子序列。给定这两个字符串,你能找到初始子序列的最小数量,当它们附加在一起时,将形成目标?
【问题讨论】:
标签: string subsequence
function minimumConcat(initial, goal) {
let result = 0;
let pattern = ''
let count1 = Array.apply(null, Array(26)).map(Number.prototype.valueOf, 0);
let count2 = Array.apply(null, Array(26)).map(Number.prototype.valueOf, 0);
initial.split('').forEach(c => {
pattern = pattern + c
});
pattern = "^[" + pattern + "]*$"
if (!RegExp(pattern).test(goal)) return -1
for (let i = 0; i < initial.length; i++) {
count1[initial.charCodeAt(i) - 97]++;
}
for (let i = 0; i < goal.length; i++) {
count2[goal.charCodeAt(i) - 97]++;
}
for (let i = 0; i < 26; i++) {
result += Math.abs(count1[i] - count2[i]);
}
return result;
}
var initial = readline();
var goal = readline();
print(minimumConcat(initial, goal));
【讨论】: