回文解碼
阿新 • • 發佈:2017-09-16
spa cin line lis http length comment div eve
/*現在有一個字符串,你要對這個字符串進行 n 次操作,每次操作給出兩個數字:(p, l) 表示當前字符串中從下標為
p 的字符開始的長度為 l 的一個子串。你要將這個子串左右翻轉後插在這個子串原來位置的正後方,求最後得到的字符
串是什麽。字符串的下標是從 0 開始的,你可以從樣例中得到更多信息。*/
輸出描述:
輸出一個字符串代表最後得到的字符串。
輸入例子1:
ab 2 0 2 1 3
輸出例子1:
abbaabb
var input = "1QEjTeEpG6\n8\n5 1\n5 5\n9 3\n6 7\n2 17\n3 25\n47 7\n7 18"; main(input);function main(input){var s = input.split("\n");/*取得每一行的數據 構成數組*/ console.log(s) var str = s[0].trim(); var n = s[1].trim(); var i = 2; while(n--){ var arrayList = s[i++].trim().split(" "); var p = +arrayList[0]; var l = +arrayList[1]; var string = str.substring(p,l+p).split();string = string.reverse().join(); str+=string; } return str }
請原諒我的語文水平有限,這道題本身所舉的例子就存在誤區,看例子實在字符串後面插入以後,再利用這個字符串,取相應的,插入;但運行的例子是,取了字符串插入到p後面;可是看第一個例子根本看不出來
後來我改了下,不知道為什麽我的splice函數沒有用錯,但是字符串查不到相應的位置,還是插在末尾
var input = "1QEjTeEpG6\n8\n5 1\n5 5\n9 3\n6 7\n2 17\n3 25\n47 7\n7 18"; main(input);function main(input){ var s = input.split("\n");/*取得每一行的數據 構成數組*/ console.log(s) var str = s[0].trim(); var n = s[1].trim(); var i = 2; while(n--){ var arrayList = s[i++].trim().split(" "); var p = +arrayList[0]; var l = +arrayList[1]; var string = str.substring(p,l+p); string = string.split().reverse().join(); var arr = s.split(‘ ‘); arr.splice(p+1,0 ,string); str= arr.join(); } return str }
這個博客有正確答案 http://blog.csdn.net/cinderella_hou/article/details/52013310
- var input = "ab\n2\n0 2\n1 3";
- function reverscon (input) {
- 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];
- //你的代碼
- var substring = s.substring(p,p+l);
- substring = substring.split(‘‘).reverse().join(‘‘);
- var arrs = s.split(‘‘); //這一步需要一個變量保存結果,因為splice返回的是
- arrs.splice(p+l,0,substring);/被刪除的字符,所以連寫的話會返回空
- s = arrs.join(‘‘); //abbaabb
- }
- }
- console.log(s);
- };
- reverscon(input);
回文解碼