左旋转字符串
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-于