[英]javascript recursion first char of string1 then last char of string2
Suppose I have two strings, n1 = abc and n2 = xyz. 假设我有两个字符串,n1 = abc和n2 = xyz。 How can I print "azbycx" recursively?
如何递归打印“ azbycx”?
Here is my code. 这是我的代码。 I am practicing string manipulations and I can't seem to find a solution to this.
我正在练习字符串操作,但似乎找不到解决方案。 I Googled already and can't seem to find one.
我已经用Google搜索,似乎找不到一个。
document.write(practice("abc","xyz"));
function practice(n1,n2){
if(n1.length==0){return n2;}
if(n2.length==0){return n1;}
return n1.substring(0,1) + practice(n2.charAt(n2.length-1),n1.substring(1));
}
It prints only "azc" :( 它仅打印“ azc” :(
function practice(n1,n2){
console.log(n1);
console.log(n2);
if(n1.length==0){return n2;}
if(n2.length==0){return n1;}
return n1[0]+n2[n2.length-1] + practice(n1.substring(1), n2.substring(0, n2.length-1));
}
function practice(n1,n2){
if(n1.length==0){return n2;}
if(n2.length==0){return n1;}
if (n2.length > n1.length) {
return n2.charAt(n2.length-1) + practice(n1, n2.substring(0, n2.length-1));
}
else {
return n1.charAt(0) + practice(n1.substring(1), n2);
}
}
var practice = function(n1,n2) {
var _charA = n1.charAt(0)
var _charB = n2.charAt(n2.length-1)
var _res = "";
if(_charA != "" || _charB != "") {
_res = practice(n1.substring(1,[n1.length]),n2.substring(0,[n2.length-1]))
}
return _charA + _charB + _res;
}
practice("abcd", "uvwxyz")
//output - azbycxdwvu
This would do what you like it to do: 这将完成您喜欢的操作:
function practice(n1,n2){
if(n1.length==0 && n2.length==0)
return "";
return n1.substr(0,1) + n2.substr(n2.length-1, 1) +
practice(n1.substr(1, n1.length-1), n2.substr(0, n2.length-1));
}
jsfiddle here: http://jsfiddle.net/gt7fsb7g/ jsfiddle在这里: http : //jsfiddle.net/gt7fsb7g/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.