说来实在惭愧,这都春招了,我竟然还不会用JavaScript输入来进行编程。昨天OKGROUP笔试,第一题,输入一串数字用‘,’隔开,找出出现次数最多的数字。我竟因为不会输入输出而放弃了。试卷100分,编程题60分。(手动再见.JPG),痛定思痛花了点时间学了一下JavaScript输入输出。
用JavaScript写上面的题目极其简单,首先去个重,然后找每个重复的数字在原数组里出现了多少次取最大值。
好了,这道题最大的难点就是如何输入输出。
相信有很多人和我一样看过牛客网输入输入规范,不好意思,我是看不懂。
废话不多说,进入正题 。
我练习输入输出的方式是直接在赛码网上刷题,也不是说刷题,主要就是用他的编译器。
网址在这https://exercise.acmcoder.com/
选择在线编程,进入之后随便选择一家公司的任意一个题目进入编译器。
其实,经过练习之后,输入输出也挺简单,照着来试一次。以下是编译器环境说明
注意,因为你是随便选择的一道题目,所以测试数据不会是你想要的,我们修改一下测试用例,然后进行输入输出测试。
看,其实挺简单。这时候再来看看这句话
gets(size)用于获取size个字符。这个可以应用于,第一行输入一个数N,第二行输入N个字符。就可以用gets(N)来实现。
接下来的输出很重要,很多题目要求空格隔开,最后不加空格!,看看这两段代码的区别
注意这里没有空格,我们把顺序换一下。
符合说明,最后加空格,回车换行。
读入整数测试
注意看,他只会读取第一个输入的整数哦!
浮点数测试
输入是整数也会正常输入,因为整数也是特殊的浮点数。
接下来输入一行字符串。
好了,输入输出我已经会了,我不管我就要把昨天那道题目做一遍。
let str = read_line()
let arr = []
let arr_1 = []
let max = 1
let index = 0
arr = str.split(',')
for (let i = 0; i < arr.length; i++)
if (arr.indexOf(arr[i]) == i)
arr_1.push(arr[i])
for (let i = 0; i < arr_1.length; i++) {
let num = 0
for (let j = 0; j < arr.length; j++) {
if (arr_1[i] == arr[j]) {
num++
}
}
if(num>max){
max=num
index = i
}
}
print(arr_1[index],max)