From 45e996805b4ce94676abb1d5a2e43098403a6a6c Mon Sep 17 00:00:00 2001 From: SwordsmanYao Date: Tue, 27 Jul 2021 16:44:04 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=89=91=E6=8C=87Offer58-II.=E5=B7=A6?= =?UTF-8?q?=E6=97=8B=E8=BD=AC=E5=AD=97=E7=AC=A6=E4=B8=B2]=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0js=E7=89=88=E6=9C=AC=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../剑指Offer58-II.左旋转字符串.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/problems/剑指Offer58-II.左旋转字符串.md b/problems/剑指Offer58-II.左旋转字符串.md index 3c3eaef0..8a60252c 100644 --- a/problems/剑指Offer58-II.左旋转字符串.md +++ b/problems/剑指Offer58-II.左旋转字符串.md @@ -165,6 +165,37 @@ func reverse(b []byte, left, right int){ ``` +javaScript: + +```js +/** + * @param {string} s + * @param {number} n + * @return {string} + */ + var reverseLeftWords = function(s, n) { + const strArr = Array.from(s); + reverse(strArr, 0, n - 1); + reverse(strArr, n, strArr.length - 1); + reverse(strArr, 0, strArr.length - 1); + return strArr.join(''); +}; + +// 翻转从 start 到 end 的字符 +function reverse(strArr, start, end) { + let left = start; + let right = end; + + while(left < right) { + // 交换 + [strArr[left], strArr[right]] = [strArr[right], strArr[left]]; + left++; + right--; + } +} +``` + +