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: 通过指定的分隔符把数组中的所有元素链接成一个字符串。



目录
相关文章
|
1月前
|
存储 算法 JavaScript
怎么刷算法,leetcode上有哪些经典题目
怎么刷算法,leetcode上有哪些经典题目
16 0
|
15天前
|
JavaScript 前端开发 索引
JavaScript中与字符串相关的方法
JavaScript中与字符串相关的方法
|
7天前
|
算法
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
18 3
|
7天前
|
算法
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
代码随想录算法训练营第五十七天 | LeetCode 739. 每日温度、496. 下一个更大元素 I
11 3
|
7天前
|
算法
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
代码随想录算法训练营第五十六天 | LeetCode 647. 回文子串、516. 最长回文子序列、动态规划总结
28 1
|
8天前
|
JavaScript 前端开发
js字符串拼接
js字符串拼接
|
9天前
|
算法 DataX
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
|
15天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`&#39;1.2,2,3,4,5&#39;`)转换为对象数组。通过使用`split(&#39;,&#39;)`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
19天前
|
JavaScript
JS去除字符串的方法
JS去除字符串的方法
|
23天前
|
JavaScript 前端开发
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
为 setTimeout 或 setInterval 提供一个字符串作为第一个参数(js的问题)
10 0

热门文章

最新文章