Skip to content

Commit f110ede

Browse files
committed
Add reverse-string-ii solution
1 parent f38782d commit f110ede

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

src/leetcode/ReverseStringII.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace leetcode;
6+
7+
class ReverseStringII
8+
{
9+
public static function reverseStr(string $s, int $k): string
10+
{
11+
if (empty($s) || $k <= 0) {
12+
return '';
13+
}
14+
$n = strlen($s);
15+
[$m, $n] = [0, strlen($s)];
16+
for (; $m < $n; $m += 2 * $k) {
17+
for ($i = $m, $j = min($m + $k - 1, $n - 1); $i < $j; $i++, $j--) {
18+
$t = $s[$i];
19+
$s[$i] = $s[$j];
20+
$s[$j] = $t;
21+
}
22+
}
23+
24+
return $s;
25+
}
26+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace leetcode\tests;
6+
7+
use leetcode\ReverseStringII;
8+
use PHPUnit\Framework\TestCase;
9+
10+
class ReverseStringIITest extends TestCase
11+
{
12+
public function testReverseStr(): void
13+
{
14+
self::assertSame('bacdfeg', ReverseStringII::reverseStr('abcdefg', 2));
15+
self::assertSame('bacd', ReverseStringII::reverseStr('abcd', 2));
16+
}
17+
}

0 commit comments

Comments
 (0)