如果 str1 的一部分可以重新排列为 str2,如何编写一个返回 true 的函数?

2024-02-20

我对以下问题遇到困难。我基本上必须编写一个代码/函数,如果 str1 的一部分可以重新排列为 str2,则返回 true。

编写函数 scramble(str1,str2),如果 str1 字符的一部分可以重新排列以匹配 str2,则返回 true,否则返回 false。

例如: str1 是“rkqodlw”,str2 是“world”,输出应返回 true。 str1 是“cedewaraaossoqqyt”,str2 是“codewars”应该返回 true。 str1 是“katas”,str2 是“steak”应该返回 false。

仅使用小写字母 (a-z)。不包含标点符号或数字。 需要考虑性能。

以下是我当前的代码:

function scramble(str1, str2) {
  var first; //longer string
  var second; //shorter string

  if(str1 || str2 === "undefined") {
    return false;
  }

  if(str1.length > str2.length) {
    first = str1;
    second = str2
  } else if(str2.length > str1.length) {
    first = str2;
    second = str1;
  }

  for (i=0; i<second.length; i++) {
    if (first.indexOf(second[i]) === -1) {
      return false;
    }
  }

  return true;

}

你能帮我解答这个问题吗?


您可以使用带有字母计数的哈希表并检查计数并减少计数。

该提案不会改变数组。

function scramble(str1, str2) {
    var count = Object.create(null);

    Array.prototype.forEach.call(str1, function(a) {
        count[a] = (count[a] || 0) + 1;
    });

    return Array.prototype.every.call(str2, function(a) {
        return count[a]--;
    });
}

console.log(scramble('rkqodlw', 'world'));              // true
console.log(scramble('cedewaraaossoqqyt', 'codewars')); // true
console.log(scramble('katas', 'steak'));                // false
console.log(scramble('', 'o'));                // false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果 str1 的一部分可以重新排列为 str2,如何编写一个返回 true 的函数? 的相关文章

随机推荐

  • 如何在 C# 中启用此计时器?

    我已经开始了 C 课程 但无法让计时器运行 它可能非常简单 我只是在这里错过了一些东西 基本上我有一个按钮来启动和停止交通灯序列 我想要 1 秒的间隔 这是我写的 当我按下开始键时 它没有按预期工作 谢谢 public int counte
  • 需要在 SSRS 订阅上设置日期参数

    我在 SSRS 中有一份报告 它采用单个日期作为参数 我想要的是该报告的订阅使用前两周的星期六作为日期 即 星期一 7 4 将给出星期六 7 16 我如何在订阅中执行此操作 看来我不能在参数中做公式 您必须在报告中设置默认参数值 而不是在订
  • 有没有办法在Python中获取对象的当前引用计数?

    有没有办法在Python中获取对象的当前引用计数 根据Python文档 https docs python org dev library sys html sys getrefcount the sys模块包含一个功能 import sy
  • 清理 Objective-C 代码

    在处理复杂问题时 我发现自己尝试了各种解决方案 尽管尽最大努力保持条理清晰 但代码可能会变得相当混乱 对象可能会被更改并且不再使用 而其他时候我可能会添加代码片段 这些代码片段最终不会被程序使用 但会占用空间和可能的内存 除了仔细阅读程序之
  • install.packages 中的警告:无法移动临时安装

    在 R RStudio 中安装或更新软件包时 我发现了许多与此警告相关的问题 但似乎没有一个问题完全符合我的情况 公司Windows 7系统 因此无管理员权限 无法更改迈克菲防病毒例外列表 R完全安装在用户空间中C Users myname
  • 在Scheme中let和let*有什么区别?

    我正在为 GIMP 编写脚本并使用let 就像我采集的样本一样 但它似乎只是一种 lambda 糖 就像let 为什么它们不同 它们之间有什么区别 它们在变量绑定的顺序上有所不同 例如考虑这个 gt let a 1 b a 2 b 此代码将
  • 没有导出成员

    我是打字稿的新手 我正在使用express js 但遇到以下问题 当我运行服务器时 它显示 routes ts 没有导出的成员 路由器 我一直在寻找但没有成功 这些是我的文件 在我的 src index ts 中 import reflec
  • 用户输入仅需等待 5 秒

    我想在 Turbo C 4 5 编辑器中编写一个简单的 C 程序 这样用户输入只需等待 5 秒 举个例子 include
  • 在 Eclipse 中调试时动态查看画布/位图

    有没有办法在 Eclipse 上调试画布 位图 我想知道当我在特定行设置断点时是否可以查看当前画布 位图的外观 现在可以在调试时查看位图 尽管仅适用于 Android Studio 来自版本 0 8 7 的发行说明 http tools a
  • 如何查找 C# 项目中的所有硬编码值(解决方案)?

    这个问题不仅仅询问硬编码字符串 还询问幻数等 有没有办法找到所有硬编码值即字符串 神奇的数字VS 中的 C 项目 解决方案中没有什么 引发这个问题的是我正在查看的一个项目 我刚刚发现一个字符串值被硬编码重复了 174 次 你能做的就是编程R
  • Visual Studio 2012 中有没有办法在调试 c# 时使用 F# REPL

    如果我在 C 程序中有一个断点 我希望使用 F REPL 来检查我的 代码 这有可能吗 您应该能够使用 F REPL 调试 C 项目 我在调试 F 库项目时这样做 但 C 应用程序 库也可以工作 我认为 编译您的 C 项目 在 F 交互式中
  • ASP.NET -> WCF 并发问题

    我正在开发一个基于 Ajax 的应用程序 该应用程序大量使用对与数据库通信的 WCF 层的服务器调用 每当我在短时间内从客户端 ASP NET 页面 对底层 WCF 服务进行多次调用时 系统就会挂起并进入空闲状态 我该如何处理这样的并发问题
  • 如何使用 insertRow() 为 TableRow 提供 ID?

    var table document getElementById table1 var tr table insertRow var td tr insertCell td innerHTML document getElementByI
  • 无法设置未定义的属性“$render”

    请需要有关此错误 无法设置未定义的属性 render 的帮助 我知道这个问题已经被问过 但我无法解决 scope editmode false scope toggleEditMode function scope editmode sco
  • 在 ubuntu core 14.04 上安装 libboost-all-dev 时依赖失败

    有人知道为什么我在 sudo apt get install libboost all dev 之后得到以下信息 Some packages could not be installed This may mean that you hav
  • 如何使用 C++ 自动打开文件夹中的第一个文件?

    如何在不知道文件名的情况下从 C 应用程序自动打开并读取给定目录中的文件内容 例如 程序的粗略描述 include iomanip include dirent h include fstream include iostream incl
  • 对数组的相同对象求和

    var data id 1 qty 100 id 2 qty 200 id 1 qty 100 id 2 qty 200 如何将这个数组求和变为 id 1 qty 200 id 2 qty 400 Thx 尝试这个 var sum data
  • 我可以在 PHP switch 语句中使用逻辑“或”吗?

    是否可以在 switch case 中使用 or 或 and 这就是我所追求的 case 4 5 echo Hilo break 不 但你可以这样做 case 4 case 5 echo Hilo break See the PHP手册 h
  • 创建可用于所有包的 Symfony2 帮助器类的正确方法

    我正在为我的模型实现 ACL 系统 并且我想将公共代码提取到公共 Helper 类中 我找不到任何如何正确执行此类操作的示例 但我不断发现有必要这样做 例如 假设在我的控制器中我有一段代码 直接取自文档 creating the ACL a
  • 如果 str1 的一部分可以重新排列为 str2,如何编写一个返回 true 的函数?

    我对以下问题遇到困难 我基本上必须编写一个代码 函数 如果 str1 的一部分可以重新排列为 str2 则返回 true 编写函数 scramble str1 str2 如果 str1 字符的一部分可以重新排列以匹配 str2 则返回 tr