arr.reduce((pre, cur) =>
pre.contact(Array.isArray(cur)
? deepFlatten(cur)
: cur))
arr.flat(Infinity)
// 2. 喊7的次数重排
条件:打乱顺序的每个人喊”过”的次数
结果:还原成正确的顺序
如: 0 1 0
预期: 1 0 0
/*
* 分析 0 1 0 三个人:[0, 0, 0] 一个过
* 开始喊
* 第一轮1 2 3 => [0, 0, 0]
* 第二轮4 5 6 => [0, 0, 0]
* 第三轮'过' 8 9 => [1, 0, 0]
* 得到一个过停止循环,组装结果返回
*/
如: 0 0 0 2 1
预期: 0 2 0 1 0
/*
* 分析 0 0 0 2 1 五个人:[0, 0, 0, 0, 0] 三个过
* 开始喊
* 第一轮1 2 3 4 5=> [0, 0, 0, 0, 0]
* 第二轮6 '过' 8 9 10 => [0, 1, 0, 0, 0]
* 第三轮11 12 13 '过' 15 => [0, 1, 0, 1, 0]
* 第四轮16 '过' 18 19 20 => [0, 2, 0, 1, 0]
* 得到三个过停止循环,组装结果返回
*/
参与人数
记录次数的数组
满足条件:7的倍数以及含有7的数字
终止条件: 几个过
function getSum(str) {
return str.split(' ').reduce((prev, next) => {
return Number(prev) + Number(next)
})
}
function rightSort(str) {
const len = str.length
const record = new Array(len).fill(0)
const sum = getSum(str)
let count = 0
let i = 0
while(count < sum) { // 终止条件
i++
// 满足条件
if (i % 7 === 0 || String(i).includes('7')) {
count++
const n = i % len
record[n - 1]++
}
}
return record.join(' ')
}
如:字符串s,首位相连成一个环形,在环中找出‘o’字符出现了偶数次最长子字符串的长度。
如: alolobo
输出: 6
如: looxdolx
输出: 7
// 字符统计及重排
给出一个仅包含字母的字符串,不包含空格,统计字符串中各个字母(区分大小写)出现的次数,并按照字母出现次数从大到小的顺序输出各个字母及
其出现次数。如果次数相同,按照自然顺序进行排序,且小写字母在大写字母之前。
输入描述:
输入一行,为一个仅包含字母的字符串。
输出描述:
按照字母出现次数从大到小的顺序输出各个字母和字母次数,用英文分号分隔,注意末尾的分号
示例1:
输入
xyxyXX
输出
x:2
function reSort(s) {
let result = ''
const map = {}
for (let i = 0
if (map[s[i]]) {
map[s[i]]++
} else {
map[s[i]] = 1
}
}
for (const key in map) {
result += `${key}:${map[key]}
}
return result
}
console.log(reSort('xyxyXX'))
现在有多组整数数组,需要把它们合并成一个新的数组。合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组中,取完的内容会删掉,如果改行不足固定长度或已经为空,则直接取出剩余部分内容放到新的数组中,继续下一行。
输入:
3
2
2,5,6,7,9,5,7
1,7,4,3,4
输出:
2,5,6,1,7,4,7,9,5,3,4,7
输入一个英文文章片段,翻转指定区间的单词顺序,标点符号和普通字母一样处理,例如输入字符串'I am a developer.',区间[0,3],则输出'developer. a am I'
输入:
I am a developer.
1
2
输出:
I am a developer.
// 猜数字
一个人设定一组四码的数字作为谜底,另一个人猜。
每猜一个数,出数者就要根据这个数字给出提示,提示以XAYB形式呈现,直到猜中为止。
其中X表示位置正确的数的个数(数字正确且位置正确),而Y表示数字正确而位置不对的数的个数。
例如,当谜底为8123,而猜谜者猜1052时,出题者必须提示0A2B。
例如,当谜底为5637,而猜谜者才4931时,出题者必须提示1A0B。
当前已知N组猜谜者猜的数字与提示,如果答案确定,请输出答案,不确定则输出NA。
输入:
6
4815 1A1B
5716 0A1B
7842 0A1B
4901 0A0B
8585 3A0B
8555 2A1B
输出:
3585