关于js的输入输出见:牛客网在线判题系统使用帮助
1.字符串最后一个单词的长度
题目描述
计算字符串最后一个单词的长度,单词以空格隔开。
输入描述:
一行字符串,非空,长度小于5000。
输出描述:
整数N,最后一个单词的长度。
var str=readline();
function countStr(str){
var arr=str.split(' ');
if(arr.length===1){
return arr[0].length;
}
var t=arr[arr.length-1]
return t.length;
}
console.log(countStr(str));
2.计算字符个数
题目描述
写出一个程序,接受一个有字母和数字以及空格组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。
输入描述:
输入一个有字母和数字以及空格组成的字符串,和一个字符。
输出描述:
输出输入字符串中含有该字符的个数。
var str=readline();
var t=readline();
function fun(str,t){
var str1=str.toLowerCase();
var t1=t.toLowerCase();
var count=0;
for(i in str1){
if(str1[i]===t1){
count++
}
}
return count;
}
console.log(fun(str,t))
3.明明的随机数
题目描述
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
Input Param
n 输入随机数的个数
inputArray n个随机整数组成的数组
Return Value
OutputArray 输出处理后的随机整数
注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。
输入描述:
输入多行,先输入随机整数的个数,再输入相应个数的整数
输出描述:
返回多行,处理后的结果
while(line=readline()){
var arr=[];
for(var i=0;i<line;i++){
arr.push(readline());
}
var tSet=[...new Set(arr)];
var setSort=tSet.sort(function(a,b){
return a-b;
})
for(var j=0;j<setSort.length;j++){
console.log(setSort[j]);
}
}
4.字符串分隔
题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
1.字符串长度<8,在字符串末尾补8个0;
2.slice函数的使用
3.对于字符串长度>8,取循环步长为8,调用slice(i,i+8)对字符串进行分割
var q='00000000';
var arr=[];
for(var i=0;i<2;i++){
arr.push(readline());
}
for(var j=0;j<arr.length;j++){
if(arr[j].length<=8){
var t=arr[j]+q;
console.log(t.slice(0,8));
}else{
var len=arr[j].length;
for(var i=0;i<len;i+=8){
var s=arr[j].slice(i,i+8);
if(s.length<8){
var p=s+q;
console.log(p.slice(0,8));
}else{
console.log(s);
}
}
}
}
}
5.进制转换
题目描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串
var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
ouput: process.stdout
});
rl.on('line', function(line) {
var output = parseInt(line, 16);
console.log(output)
})
6.质数因子
题目描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
最后一个数后面也要有空格
详细描述:
函数接口说明:
public String getResult(long ulDataInput)
输入参数:
long ulDataInput:输入的正整数
返回值:
String
输入描述:
输入一个long型整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
var num=readline();
var arr=[];
for(var i=2;i<=num;i++){
if(num%i==0){
num=num/i;
arr.push(i);
i=1;
}
}
var result=arr.sort(function(a,b){
return a-b;
}).join(' ')+' '
console.log(result)
7.取近似值
题目描述
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。
输入描述:
输入一个正浮点数值
输出描述:
输出该数值的近似整数值
1.Math.round函数的调用
var num=readline();
console.log(Math.round(num));
----------
2.parseInt取整的使用
var num1=readline();
var t=parseInt(num1);
var p=num1-t;
if(p>=0.5){
t+=1
}
console.log(t);
8.合并表记录
题目描述
数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
var k=parseInt(readline())
var obj={}
for(var i=0;i<k;i++){
arr=readline().split(' ').map(function(item){
return parseInt(item);
});
//key值相等的,合并value
if(arr[0] in obj){
obj[arr[0]]+=arr[1];
}else{
obj[arr[0]]=arr[1];
}
}
var newarr=Object.keys(obj);
for(var i=0;i<newarr.length;i++){
console.log(newarr[i]+' '+obj[newarr[i]]);
}
9.提取不重复的数字
题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
var str3=readline();
var arr3=str3.split('').reverse()
var arr4=[];
for(var i=0;i<arr3.length;i++){
if(arr4.indexOf(arr3[i])===-1){
arr4.push(arr3[i]);
}
}
console.log(arr4.toString().replace(/,/g,''));
10.字符串个数统计
题目描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
输入描述:
输入N个字符,字符在ACSII码范围内。
输出描述:
输出范围在(0~127)字符的个数。
//原谅我偷懒了,直接上一道题目的思想,先对字符串去重,然后计算字符串长度
var str3=readline();
var arr3=str3.split('')
var arr4=[];
for(var i=0;i<arr3.length;i++){
if(arr4.indexOf(arr3[i])===-1){
arr4.push(arr3[i])
}
}
console.log(arr4.length);
11.数字颠倒
描述:
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
输入描述:
输入一个int整数
输出描述:
将这个整数以字符串的形式逆序输出
//这样可以吗
var numInt=readline();
var arr=numInt.split('').reverse();
console.log(arr.toString().replace(/,/g,''));
12.字符串反转
题目描述
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。例如:
输入描述:
输入N个字符
输出描述:
输出该字符串反转后的字符串
//和上一题有区别吗
var numInt=readline();
var arr=numInt.split('').reverse();
console.log(arr.toString().replace(/,/g,