达州网站建设的公司,南宁工程建设信息网,腾讯企点怎么注册,编程培训机构找极客时间尊享面试 100 题是Leetcode会员专享题单 1427. 字符串的左右移
力扣题目链接
给定一个包含小写英文字母的字符串 s 以及一个矩阵 shift#xff0c;其中 shift[i] [direction, amount]#xff1a; direction 可以为 0 #xff08;表示左移#xff09;或 1 #xff08;表… 尊享面试 100 题是Leetcode会员专享题单 1427. 字符串的左右移
力扣题目链接
给定一个包含小写英文字母的字符串 s 以及一个矩阵 shift其中 shift[i] [direction, amount] direction 可以为 0 表示左移或 1 表示右移。 amount 表示 s 左右移的位数。 左移 1 位表示移除 s 的第一个字符并将该字符插入到 s 的结尾。 类似地右移 1 位表示移除 s 的最后一个字符并将该字符插入到 s 的开头。 对这个字符串进行所有操作后返回最终结果。
示例 1
输入s abc, shift [[0,1],[1,2]]
输出cab
解释
[0,1] 表示左移 1 位。 abc - bca
[1,2] 表示右移 2 位。 bca - cab示例 2
输入s abcdefg, shift [[1,1],[1,1],[0,2],[1,3]]
输出efgabcd
解释
[1,1] 表示右移 1 位。 abcdefg - gabcdef
[1,1] 表示右移 1 位。 gabcdef - fgabcde
[0,2] 表示左移 2 位。 fgabcde - abcdefg
[1,3] 表示右移 3 位。 abcdefg - efgabcd提示
1 s.length 100s 只包含小写英文字母1 shift.length 100shift[i].length 20 shift[i][0] 10 shift[i][1] 100
思路
/*** param {string} s* param {number[][]} shift* return {string}*/
var stringShift function(s, shift) {let left 0, right 0,len s.lengthfor(let i 0; i shift.length;i){if(shift[i][0] 0){left s.slice(shift[i][1]%len)right s.slice(0,shift[i][1]%len)}else{left s.slice(-shift[i][1]%len)right s.slice(0,-shift[i][1]%len)}s left right}return s
};更多查看