简体   繁体   English

javascript递归string1的第一个字符,然后string2的最后一个字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM