实现一个函数,输入一个字符串,返回该字符串出现最多的字母
//JavaScript V8
const str = readline();//获取输入字符串
const map = new Map(); //新建哈希表存储字母及其对应出现次数
for(let i in str){ //遍历字符串,首次遇到的新建,已经遇到过的+1
if(!map.has(str[i])){
map.set(str[i], 1);
}else{
map.set(str[i], map.get(str[i]) + 1);
}
}
let maxNums = 0, res = '';
for(let [i, nums] of map){ //遍历哈希表,找到value(nums)最大的对应字母
if(nums > maxNums){
res = i;
maxNums = nums;
}
}
console.log(res); var str ='';
while(str=readline())
{
let obj = {};
for(let i=0;i<str.length;i++){
var key = str[i];
if(!obj[key]){
obj[key] = 1;
}else{
obj[key]++;
}
}
let maxKey = str[0],
maxCount = obj[str[0]];
Object.keys(obj).forEach((key,index)=>{
if(obj[key] > maxCount){
maxCount = obj[key];//记录较大的次数
maxKey = key;//记录较大的key值
}
})
print(maxKey)
}
这套试题,得了54分是不是有点低了...
let str = read_line()
function searchMax(str) {
for (let i = 0; i < str.length; i++) {
let mymap = new Map()
if (!mymap.has(str[i])) {
mymap.set(str[i], 1)
} else {
mymap.set(str[i], mymap.get(str[i] + 1))
}
}
//遍历map找到最多的次数
const arr = Array.from(mymap.values())
let result = Math.max.apply(Math, arr)
print(result)
} 虽然说是错误答案,但是思路是没错的,直接sort默认字典排序,遍历一次就可以了
第一次在牛客提交编程题完全一脸懵逼,想着一片白板怎么接口啥规范都没有,看了答案才知道要自己读入。。。
function foo(str){
let max=0;
let index=0;
let count=1;
str=str.split('').sort();
for(let i=1;i<str.length;i++){
if(str[i]==str[i-1]){
count++;
if(count>max){
max=count;
index=i;
}
}
else {
count=1;
}
}
return str[index];
} //暴力解决
let s=readline()
let t = new Array(s.length).fill(0) //每一个字母对应一个数组元素的次数,初始均为0
let max = 0; //出现次数最大值
let res = null; //结果
for(let i = 0; i< s.length; i++){
for(let j = i+ 1; j < s.length; j++){ //遍历每个字母之后的元素
if(s[i] === s[j]){
t[i]++; //字母之后出现相同便增加次数
}
}
max = Math.max(t[i], max)
}
for(let i = 0; i< s.length; i++){
if(t[i] === max){ //找到数组第i个元素
res = s[i]
}
}
console.log(res) let str = readline();//获取输入字符串
const map=new Map()//计数器
let arr = str.split('') //将字符串分割为数组
//循环遍历每一个字符,判断map的key如果存在该字符,则将value+1;如果不存在则新增
for(let i = 0 ; i < arr.length;i++){
let val =map.get(arr[i])
if(val){
map.set(arr[i],val+1)
}else{
map.set(arr[i],1)
}
}
//获取value中的最大值,并且获取到对应的key,输出
let max=0; //最大值
let key
map.forEach((v,k) => {
if(max<v){
max=v
key=k
}
})
console.log(key) let str = readline()
let arr = []
str.split('').forEach(item => {
if(arr.some(item1 => {return item1.word === item})){
arr[arr.findIndex(item2 => {return item2.word === item})].count += 1
}else{
arr.push({
word:item,
count:1
})
}
})
arr.sort((a,b) => {return b.count - a.count})
console.log(arr[0].word) | while(line=readline()){ var lines = line.split(' '); var abc = lines[0]; function add(abc){ var str = ''; var num = 0; for(var i =0;i<abc.length;i++){ if(abc.split(abc.charAt(i)).length>num){ str = abc.charAt(i); num = abc.split(abc.charAt(i)).length; } } returnstr; } print(add(abc)); } |