资讯专栏INFORMATION COLUMN

JavaScript 数据结构与算法 这题你会吗?

Olivia / 3214人阅读

摘要:第题反转字符串中的单词给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例输入输出注意在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

LeetCode 第557题

557. 反转字符串中的单词 III 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例 1:

输入: "Let"s take LeetCode contest"
输出: "s"teL ekat edoCteeL tsetnoc"
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
1.常规思路 通过split(" ")将每个单词分开 然后将每个单词翻转后 用join(" ")合并成一个方法
let reverseWords = (s) => {
  return s
    .split(" ")
    .map(item => {
      return item
        .split("")
        .reverse()
        .join("")
    }).join(" ")
};

当然split可以配合正则,split(" ")可以替换为split(/s/g)

2.最快的范例 这种思路其实和上面这种 没什么差别
var reverseWords = function (s) {
  // "Let"s take LeetCode contest"
  // -> tsetnoc edoCteeL ekat s"teL  直接翻转
  // -> "s"teL ekat edoCteeL tsetnoc" 然后通过" "切割后再翻转 不需要循环
  return s.split("").reverse().join("").split(" ").reverse().join(" ")
}
2.比较不同的思路
let reverseWords = (s) => {
  let str = ""//存出结果
  let begin = 0//单词开始的位置 
  for (let i = 0; i < s.length; i++) {
    if (s[i] === " ") {
      //当遇到" " ,将前面的单词进行翻转
      for (let j = i - 1; j >= begin; j--) {
        str += s[j]
      }
      str += " " //增加间隔
      begin = i + 1  //更新单词开始的位置
    }

  }
  // 将最后一个单词 翻转
  for (let n = s.length - 1; n >= begin; n--) {
    str += s[n]
  }
  return str
}

如果喜欢或者想要更多的信息,可以戳这里,欢迎star

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104119.html

相关文章

  • LeetCode-电话号码的字母组合(No.17) 递归+hash

    摘要:电话号码的字母组合给定一个仅包含数字的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下与电话按键相同。注意不对应任何字母。 LeetCode 17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。 注意 1 不对应任何字母。 showImg(https://user-gold-cdn.xit...

    周国辉 评论0 收藏0
  • 数据结构算法-LeetCode 格雷编码(No.89)

    摘要:例如,也是一个有效的格雷编码序列。示例输入输出解释我们定义格雷编码序列必须以开头。给定编码总位数为的格雷编码序列,其长度为。因此,当时,其格雷编码序列为。 LeetCode 89. 格雷编码 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。第一个数与最后一位数 也只差以...

    Youngs 评论0 收藏0
  • 数据结构算法-LeetCode 种花问题(No.605)

    摘要:能否在不打破种植规则的情况下种入朵花能则返回,不能则返回。示例输入输出示例输入输出注意数组内已种好的花不会违反种植规则。输入的数组长度范围为。是非负整数,且不会超过输入数组的大小。 LeetCode 605. 种花问题 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给定一个花坛(表示为一个数组包含0和1,...

    xuexiangjys 评论0 收藏0
  • 微信小程序中图片上传阿里云Oss

    摘要:微信小程序图片上传阿里云服务器也折腾了蛮久才解决的,所以特意去记录一下。上传失败第四步源码在这里如果觉得这面文章对你有帮助的话,可给我点个这里,谢谢最后,希望这篇文章对你有所帮助,真真确确是可以在微信小程序中上传图片到阿里云的。 本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发。最近工作遇到一个小问题。 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意...

    Yang_River 评论0 收藏0
  • 微信小程序中图片上传阿里云Oss

    摘要:微信小程序图片上传阿里云服务器也折腾了蛮久才解决的,所以特意去记录一下。上传失败第四步源码在这里如果觉得这面文章对你有帮助的话,可给我点个这里,谢谢最后,希望这篇文章对你有所帮助,真真确确是可以在微信小程序中上传图片到阿里云的。 本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发。最近工作遇到一个小问题。 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意...

    netmou 评论0 收藏0

发表评论

0条评论

Olivia

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<