1.输入一个字符串,返回字符串中出现次数最多的字符
let s = 'absddduuutfb'
let obj = {} //统计字符使用
for (let item of s) {
if (obj[item]) {
obj[item]++
} else {
obj[item] = 1
}
}
let keyArr = Object.keys(obj).sort((a, b) => {
return obj[b] - obj[a] //对键按值降序排列,得到键数组
})
let c = keyArr[0] //c存的这个字符一定是次数最多的字符
for (let k in obj) { //可能存在其他次数一样多的字符,遍历对象找出字符
if (obj[k] == obj[c]) {
console.log(k);
}
}
2.连续数字连接问题 (有问题!!!)
如:输入[1,2,3,5,7,8,10]
输出 1~3,5,7~8,10
let arr = [1, 2, 3, 5, 7, 8, 10]
let a = [arr[0]]
for (let i = 1; i < arr.length; i++) {
if ((arr[i] - arr[i - 1]) != 1) {
a.push(arr[i])
}
}
console.log(a);//[ 1, 5, 7, 10 ]
for (let i = 1; i < a.length; i++) {
let index = arr.indexOf(a[i]) - 1
if (a[i - 1] != arr[index]) {
a[i - 1] = a[i - 1] + '~' + arr[index]
}
}
console.log(a);/[ '1~3', 5, '7~8', 10 ]