Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit aec3c7b

Browse files
Diego Flores CastilloDiego Flores Castillo
Diego Flores Castillo
authored and
Diego Flores Castillo
committed
reverseString-006 (feature): implement reverseStr
1 parent 980d799 commit aec3c7b

File tree

2 files changed

+25
-18
lines changed

2 files changed

+25
-18
lines changed

.idea/workspace.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

LeetcodeProblems/Algorithms/Reverse_String_II.js

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,31 +9,38 @@ Output: "bacdfeg"
99
Restrictions:
1010
The string consists of lower English letters only.
1111
Length of the given string and k will in the range [1, 10000]
12+
1213
*/
1314

14-
var reverseStr = function (s, k) {
15-
if (k <= 1) return s;
16-
var ret = "";
17-
for (var iterK = 0; iterK * k < s.length; iterK = iterK + 2) {
18-
const start = iterK * k;
19-
const end = start + k - 1;
15+
/*
16+
const reverseStr = (s, k) => {
17+
let loops = s.length / k;
18+
let firstHalf = s.slice(0, k);
19+
let secondHalf = s.slice(k, s.length);
20+
let newFirstHalf = "";
2021
21-
ret += reverse(s, start, end);
22-
ret += s.slice(end + 1, k * (iterK + 2));
22+
for (let i = (k - 1); i >= 0; i--) {
23+
newFirstHalf = newFirstHalf + firstHalf.charAt(i);
2324
}
25+
return newFirstHalf + secondHalf;
2426
25-
return ret;
2627
};
28+
*/
2729

28-
var reverse = function (s, start, end) {
29-
var ret = "";
30-
if (end >= s.length) end = s.length - 1;
30+
const reverseStr = (s, k) => {
31+
if (s === "") return "";
32+
if (k === 0) return s;
33+
let firstHalf = s.slice(0, 2 * k);
34+
let secondHalf = s.slice(2 * k, s.length);
35+
let kFirstHalf = "";
3136

32-
while (start <= end) {
33-
ret += s.charAt(end);
34-
end--;
37+
for (let i = (k - 1); i >= 0; i--) {
38+
kFirstHalf = kFirstHalf + firstHalf.charAt(i);
3539
}
36-
return ret;
40+
41+
const phrase = kFirstHalf + firstHalf.slice(k, firstHalf.length) + reverseStr(secondHalf, k);
42+
return phrase;
3743
};
3844

45+
3946
module.exports.reverseStr = reverseStr;

0 commit comments

Comments
 (0)