1 回文解码
题目
现在有一个字符串,你要对这个字符串进行 n 次操作,每次操作给出两个数字:(p, l) 表示当前字符串中从下标为 p 的字符开始的长度为 l 的一个子串。你要将这个子串左右翻转后插在这个子串原来位置的正后方,求最后得到的字符串是什么。字符串的下标是从 0 开始的,你可以从样例中得到更多信息。
思路
var s_1 = s.substr(p,l).split('').reverse().join('')
s = s.slice(0,p+l) + s_1 + s.slice(p+l)
代码 javascript
process.stdin.resume();
process.stdin.setEncoding('ascii');
var input = "";
var input_array = "";
process.stdin.on('data', function (data) {
input += data;
});
process.stdin.on('end', function () {
input_array = input.split("\n");
var nLine = 0;
while(nLine < input_array.length){
var line = input_array[nLine++].trim();
if(line === ''){
continue;
}
var s = line;
var n = +input_array[nLine++];
while(n--){
var input_arrays = input_array[nLine++].trim().split(' ');
var p = +input_arrays[0];
var l = +input_arrays[1];
//你的代码
//console.log('s_before',s);
//console.log(p);
//console.log(l)
var s_1 = s.substr(p,l).split('').reverse().join('')
s = s.slice(0,p+l) + s_1 + s.slice(p+l)
//console.log('s_1',s_1)
//console.log('s_after',s);
}
console.log(s);
return s;
}
});
2 出专辑
题目
你作为一名出道的歌手终于要出自己的第一份专辑了,你计划收录 n 首歌而且每首歌的长度都是 s 秒,每首歌必须完整地收录于一张 CD 当中。每张 CD 的容量长度都是 L 秒,而且你至少得保证同一张 CD 内相邻两首歌中间至少要隔 1 秒。为了辟邪,你决定任意一张 CD 内的歌数不能被 13 这个数字整除,那么请问你出这张专辑至少需要多少张 CD ?
思路
代码 javascript
process.stdin.resume();
process.stdin.setEncoding('ascii');
var input = "";
var input_array = "";
var n;
var s;
var l;
process.stdin.on('data', function (data) {
input += data;
});
function do_something(n, s, l){
//你的代码
var single = Math.floor(l / (s + 1));
if (single % 13 === 0) single--;
if (s === l) single = 1;
var res = Math.ceil(n / single)
if (res === 1 && n % 13 === 0) res++;
console.log(res)
}
process.stdin.on('end', function () {
input_array = input.split("\n");
var nLine = 0;
while(nLine < input_array.length){
var line = input_array[nLine++].trim();
if(line === ''){
continue;
}
var input_arrays = line.split(' ');
n = +input_arrays[0];
s = +input_arrays[1];
l = +input_arrays[2];
do_something(n, s, l);
}
});