左旋转字符串
2023/2/11小于 1 分钟
左旋转字符串
题目链接
题目描述
刷题思路
代码实现
/**
* 【中等】左旋转字符串
*/
function LeftRotateString(str, n) {
// 临界条件
if (!str || str.length < n) {
return ''
}
// 对k以前的进行翻转
const firstStr = str.slice(0, n)
// 对k以后的字符串进行翻转
const secondStr = str.slice(n)
// 对拼接后的字符串进行翻转
return reverseStr(`${reverseStr(firstStr)}${reverseStr(secondStr)}`)
}
/**
* 偷懒做法
*/
export function LeftRotateString01(str, n) {
// 两两翻转后,在统一翻转
return `${str.slice(0, n).split('').reverse().join('')}${str.slice(n).split('').reverse().join('')}`.split('').reverse().join('')
}
/**
* 旋转数组,交换
*/
function reverseStr(str) {
const result = str.split('')
let left = 0
let right = result.length - 1
while (left <= right) {
// 临时值 元素交换
[result[left], result[right]] = [result[right], result[left]]
left++
right--
}
return result.join('')
}
LeftRotateString('', 6)
一些建议
更新日志
2024/11/1 09:51
查看所有更新日志
ccf4c
-于5a2b2
-于a3cca
-于c0f2d
-于6ff0a
-于06596
-于9b9e4
-于b0275
-于5f1e1
-于2b8a3
-于02ab1
-于8de1a
-于d0347
-于74e84
-于ced18
-于a23ce
-于e34c0
-于74aa9
-于3c22c
-于9bbe9
-于e4c74
-于