首页 > 解决方案 > 如何创建一个从输入 str a 和 b 创建唯一字符串的函数?

问题描述

我对javascript很陌生,我想知道是否有人可以帮助我解决这个问题?

用字符串a ="xyaabbbccccdefww"b="xxxxyyyyabklmopq". 我应该创建一个名为longest 的函数,它接受这两个输入,即function longest(a,b)返回一个唯一且已排序的字符串。

到目前为止,我的代码是:

function longest(s1, s2) {
  let val = new Set((s1 + s2));
  let newStr = "";
  for (let item of val){
  newStr += item;
  }
  let newestStr = function(newStr){
    return ((newStr.split('')).sort()).join('');
  };
  return newestStr;
}

let a = "xyaabbbccccdefww";
let b = "xxxxyyyyabklmopq";
let val1 = longest(a, b);

但这function (newStr) { return newStr.split('').sort().join(''); }会在我尝试打印 val1 时生成。相反,它应该返回字符串abcdefklmopqwxy

有人可以向我解释我哪里出错了吗?有没有更有效的方法来解决这个问题,因为((newStr.split('')).sort()).join('');NlogN 很长。

谢谢!

标签: javascript

解决方案


你的代码是正确的。但是该longest函数返回 afunction而不是值。将return语句调整为:

  return newestStr(newStr);


推荐阅读