文章目录
- 绪论
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10 求最长公共后缀
- 11
- 12
- 13 最大公约数
- 14
- 15
- 结语
绪论
『虽有遗憾,绝不后悔。』—— 「古剑奇谭」
1
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});process.stdin.on("end",function(){let X=buf.split("\n").map(x=>{return parseInt(x)});for(let i=0;i<10;i++){if(X[i]<=0){X[i]=1;}console.log(`X[${i}] = ${X[i]}`);}
});
2
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});process.stdin.on("end",function(){let lines=buf.split("\n");let L=parseInt(lines[0]);let C=lines[1];let d=[];for(let i=0;i<12;i++){d.push(lines[i+2].split(" ").map(x=>{return parseFloat(x)}));}let sum=0;for(let i=0;i<12;i++){sum+=d[L][i];}if(C==="M"){sum/=12;}console.log(`${sum.toFixed(1)}`);
});
js 原来每一行后面都可以不加分号
3
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});process.stdin.on("end",function(){let ns=buf.split("\n").map(x=>{return parseInt(x)});for(let n of ns){if(n===0){break;}for(let i=0;i<n;i++){let lines="";for(let j=0;j<n;j++){lines+=`${Math.min(i+1,n-i,j+1,n-j)} `;}console.log(lines);}console.log();}
});
4
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});process.stdin.on("end",function(){let line=buf.split("\n");let c=line[0];let d=[];for(let i=0;i<12;i++){d.push(line[i+1].split(" ").map(x=>{return parseFloat(x)}));}let sum=0;let cnt=0;for(let i=0;i<12;i++){for(let j=0;j<=10-i;j++){sum+=d[i][j];cnt++;}}if(c==="M"){sum/=cnt;}console.log(`${sum.toFixed(1)}`);
});
5
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});process.stdin.on("end",function(){let [n,m]=buf.split(" ").map(x=>{return parseInt(x)});let res=[];for(let i=0;i<n;i++){res[i]=[];for(let j=0;j<m;j++){res[i].push(0);}}let dx=[-1,0,1,0];let dy=[0,1,0,-1];let x=0,y=0,d=1;for(let i=1;i<=n*m;i++){res[x][y]=i;let a=x+dx[d],b=y+dy[d];if(a<0||b<0||a>=n||b>=m||res[a][b]){d=(d+1)%4;a=x+dx[d],b=y+dy[d];}x=a,y=b;}for(let i=0;i<n;i++){let line="";for(let j=0;j<m;j++){line+=`${res[i][j]} `;}console.log(line);}
});
6
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});process.stdin.on("end",function(){let str=buf.split("\n")[0];console.log(str.length);
});
7
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});process.stdin.on("end",function(){let str=buf.split('\n')[0];let cnt={};for(let s of str){if(s in cnt){cnt[s]++;}else{cnt[s]=1;}}for(let c of str){if(cnt[c]===1){console.log(c);return;}}console.log("no");
});
8
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});process.stdin.on("end",function(){let [str,a,b]=buf.split('\n');let ans="";let words=str.split(" ");for(let w of words){if(w===a){ans+=b+" ";}else{ans+=w+" ";}}console.log(ans);
});
9
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});process.stdin.on("end",function(){let words=buf.split("\n")[0].split(" ");words.reverse();let ans="";for(let word of words){ans+=word+" ";}console.log(ans);
});
10 求最长公共后缀
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});let reverse=(str)=>{//自己定义一个反转字符串的函数return str.split('').reverse().join('');//表示把一个字符串先拆分成数组,//逆序,再拼接成字符串
}process.stdin.on("end",function(){let lines=buf.split("\n");//去掉回车for(let i=0;i<lines.length;){//把输入分成多组let n=parseInt(lines[i]);//求这一组测试数据有多少个单词if(n===0){break;}//结束输入i++;//跳过 nfor(let j=0;j<n;j++){//处理的是从第一个单词到第 n 个单词lines[i+j]=reverse(lines[i+j]);//调用自己定义的函数//反转这个字符串}let res="";//记录最长公共前缀(本来是求最长公共后缀)//现在逆序之后就是求最长公共前缀了for(let k=0;k<lines[i].length;k++){let is_same=true;//判断当前循环的对应字母是不是相等的for(let j=1;j<n;j++){//从下一个单词的对应字母开始比较//比较的是每一个单词的对应位置的字母,只比较一个字母if(lines[i+j][k]!==lines[i][k]){is_same=false;//标记为不相等,表示最长的公共前缀到这里就结束了break;//跳出循环}}if(is_same){res+=lines[i][k];//把答案加上当前的字母}else{break;//跳出循环}}i+=n;//每一次要跳过 n 个单词console.log(reverse(res));//前面把字符串逆序了,现在需要还原}
});
11
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});let reverse=(str)=>{//自己定义一个反转字符串的函数return str.split('').reverse().join('');//表示把一个字符串先拆分成数组,//逆序,再拼接成字符串
}let max=(x,y)=>{return x>y?x:y;
}process.stdin.on("end",function(){let [x,y]=buf.split(" ").map(x=>{return parseInt(x)});console.log(max(x,y));
});
12
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});let print2D=(a,row,col)=>{//定义一个函数,数组,行数,列数for(let i=0;i<row;i++){console.log(a[i].join(" "));//把每一行数组按照空格连接成字符串}
}process.stdin.on("end",function(){let lines=buf.split("\n");//按换行分隔开let [n,m]=lines[0].split(" ").map(x=>{return parseInt(x)});//把行数和列数提取出来let a=[];//数组for(let i=0;i<n;i++){//遍历每一行a.push(lines[i+1].split(" ").map(x=>{return parseInt(x)}));//从第一行开始,因为第 0 行是行数和列数//把每一行的数字按照空格隔开,插入到数组里面}print2D(a,n,m);//调用自己定义的函数});
13 最大公约数
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});let gcd=(a,b)=>{return b?gcd(b,a%b):a;
}process.stdin.on("end",function(){let [a,b]=buf.split(" ").map(x=>{return parseInt(x)});console.log(gcd(a,b));});
14
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});let bubble_sort=(q,l,r)=>{for(let i=r;i>l;i--){for(let j=l;j<i;j++){if(q[j]>q[j+1]){[q[j],q[j+1]]=[q[j+1],q[j]];}}}
}process.stdin.on("end",function(){let lines=buf.split("\n");let [n,l,r]=lines[0].split(" ").map(x=>{return parseInt(x)});let q=lines[1].split(" ").map(x=>{return parseInt(x)});bubble_sort(q,l,r);console.log(q.join(" "));
});
15
let buf="";process.stdin.on("readable",function(){let chunk=process.stdin.read();if(chunk){buf+=chunk.toString();}
});let path=[];
let st=[];let dfs=(u,n)=>{if(u===n){console.log(path.join(" "));}else{for(let i=1;i<=n;i++){if(!st[i]){path.push(i);st[i]=true;dfs(u+1,n);st[i]=undefined;path.pop();}}}
};process.stdin.on("end",function(){let n=parseInt(buf);dfs(0,n);
});
结语
『一点星光,在心上就能反射出太阳。』—— 学而思「星光效应」