在 JavaScript 中将字符串拆分为最大部分
问题
我们需要编写一个JavaScript函数,它接受一个字符串str作为第一个也是唯一的参数。
我们函数的目的是将这个字符串分成尽可能多的部分,使每个字母最多出现在一个部分,并返回一个表示这些部分大小的整数数组。
例如,如果函数的输入是
输入
const str = "ababcbacadefegdehijhklij";
输出
const output = [9, 7, 8];
输出说明
分区是“ababcbaca”、“defegde”、“hijhklij”。这是一个分区,因此每个字母最多出现在一个部分中。像"ababcbacadefegde"、"hijhklij"这样的分区是不正确的,因为它将字符串str拆分成更少的部分。
示例
以下是代码-
const str = "ababcbacadefegdehijhklij";
const splitStrings = (str = '') => {
const res = []
const map = {}
for (let i = 0; i < str.length; i++) {
map[str[i]] = i
}
let start = 0
while (start <=str.length- 1) {
let end = map[str[start]]
for (let i = start + 1; i < end; i++) {
const currentEnd = map[str[i]]
if (currentEnd > end) {
end = currentEnd
}
}
res.push(end - start + 1)
start = end + 1
}
return res
};
console.log(splitStrings(str));输出结果[ 9, 7, 8 ]
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语