LeetCode重新排列字符串使用JavaScript解决|前端学算法

简介: LeetCode重新排列字符串使用JavaScript解决|前端学算法

重新排列字符串


给你一个字符串 s 和一个 长度相同 的整数数组 indices 。 请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。 返回重新排列后的字符串。

示例 1:


image.png


输入: s = "codeleet", indices = [4,5,6,7,0,2,1,3]

输出: "leetcode"

解释: 如图所示,"codeleet" 重新排列后变为 "leetcode" 。

示例 2:

输入: s = "abc", indices = [0,1,2]

输出: "abc"

解释: 重新排列后,每个字符都还留在原来的位置上。


解题思路


根据题目我们可以知道,字符串的长度等于数组长度,且数组当前位置的元素就是字符串的位置

所以我们可以创建一个新数组newArr来存储改变位置后的字符串;遍历字符串s,将newArr[indices[i]]处设置为s[i]的值即可

具体步骤入下:

  • 第一步: 创建一个新数组newArr,长度等于字符串的长度
  • 第二步: 遍历字符串,将数组的第 indices[i]处元素设置为当前遍历的字符
  • 第三步: 将数组转化为字符串后返回
var restoreString = function(s, indices) {
    const newArr = new Array(s.length);
    for (let i = 0; i < s.length; ++i) {
        newArr[indices[i]] = s.charAt(i);
    }
    return newArr.join('');
};


image.png


知识点


  • charAt: charAt() 方法可返回指定位置的字符。

字符串中的字符从左向右索引,第一个字符的索引值为 0,最后一个字符的索引值为 stringName.length - 1。如果指定的 index 值超出了该范围,则返回一个空字符串。

  • join: 通过指定的分隔符把数组中的所有元素链接成一个字符串。



目录
相关文章
|
3月前
|
算法 C++ 容器
Leetcode第三十一题(下一个排列)
这篇文章介绍了LeetCode第31题“下一个排列”的C++解决方案,该算法通过原地修改数组来找到下一个字典序更大的排列,如果不存在则重排为字典序最小的排列。
43 0
Leetcode第三十一题(下一个排列)
|
3月前
|
JavaScript 前端开发
JS几种拼接字符串的方法
JS几种拼接字符串的方法
69 1
|
3月前
|
算法
Leetcode 初级算法 --- 数组篇
Leetcode 初级算法 --- 数组篇
55 0
|
15天前
|
JavaScript 前端开发 开发者
JavaScript字符串的常用方法
在JavaScript中,字符串处理是一个非常常见的任务。JavaScript提供了丰富的字符串操作方法,使开发者能够高效地处理和操作字符串。本文将详细介绍JavaScript字符串的常用方法,并提供示例代码以便更好地理解和应用这些方法。
42 13
|
1月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
96 3
|
2月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
|
2月前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
38 2
|
2月前
|
存储 算法 Java
leetcode算法题-有效的括号(简单)
【11月更文挑战第5天】本文介绍了 LeetCode 上“有效的括号”这道题的解法。题目要求判断一个只包含括号字符的字符串是否有效。有效字符串需满足左括号必须用相同类型的右括号闭合,并且左括号必须以正确的顺序闭合。解题思路是使用栈数据结构,遍历字符串时将左括号压入栈中,遇到右括号时检查栈顶元素是否匹配。最后根据栈是否为空来判断字符串中的括号是否有效。示例代码包括 Python 和 Java 版本。
|
3月前
|
算法
两个字符串匹配出最长公共子序列算法
本文介绍了最长公共子序列(LCS)问题的算法实现,通过动态规划方法求解两个字符串的最长公共子序列,并提供了具体的编程实现细节和示例。
116 1
两个字符串匹配出最长公共子序列算法
|
3月前
|
算法
每日一道算法题(Leetcode 20)
每日一道算法题(Leetcode 20)
40 2