如何编写一个 JavaScript 函数,它能够判断字符串 1 的一部分是否可以通过重新排列字符来构成字符串 2?


我们需要编写一个函数,如果字符串 1 的一部分可以重新排列成字符串 2,则返回 true。编写一个函数,例如 scramble(str1,str2),如果 str1 字符的一部分可以重新排列以匹配 str2,则返回 true,否则返回 false。

例如 -

Let’s say string1 is str1 and string2 is str2.
str1 is 'cashwool' and str2 is ‘school’ the output should return true.
str1 is 'katas' and str2 is 'steak' should return false.

因此,以下是执行此操作的代码。我们只需拆分并排序两个字符串,然后检查较小的字符串是否为较大字符串的子字符串。

执行此操作的完整代码如下 -

示例

const str1 = 'cashwool';
const str2 = 'school';
const scramble = (str1, str2) => {
   const { length: len1 } = str1;
   const { length: len2 } = str2;
   const firstSortedString = str1.split("").sort().join("");
   const secondSortedString = str2.split("").sort().join("");
   if(len1 > len2){
      return firstSortedString.includes(secondSortedString);
   }
   return secondSortedString.includes(firstSortedString);
};
console.log(scramble(str1, str2));

输出

控制台中的输出将是 -

true

更新于: 2020-08-20

319 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告