1818```
19192
2020abcdefg
21- ```
21+ ```
2222
2323样例输出:
2424
@@ -300,33 +300,50 @@ int main()
300300```javascript
301301// JS中字符串内不可单独修改
302302
303- // 右旋转
304- function reverseLeftWords(s, k) {
305- const reverse = (sList, start, end) => {
306- for (let i = start, j = end; i < j; i++, j--) {
307- [sList[i], sList[j]] = [sList[j], sList[i]];
308- }
309- }
310- const sList = Array.from(s);
311- reverse(sList, 0, sList.length - k - 1);
312- reverse(sList, sList.length - k, sList.length - 1);
313- reverse(sList, 0, sList.length - 1);
314- return sList.join('');
303+ const readline = require('readline')
304+
305+ const rl = readline.createInterface({
306+ input: process.stdin,
307+ output: process.stdout
308+ })
309+
310+ const inputs = []; // 存储输入
311+
312+ rl.on('line', function(data) {
313+ inputs.push(data);
314+
315+ }).on('close', function() {
316+ const res = deal(inputs);
317+ // 打印结果
318+ console.log(res);
319+ })
320+
321+ // 对传入的数据进行处理
322+ function deal(inputs) {
323+ let [k, s] = inputs;
324+ const len = s.length - 1;
325+ k = parseInt(k);
326+ str = s.split('');
327+
328+ str = reverseStr(str, 0, len - k)
329+ str = reverseStr(str, len - k + 1, len)
330+ str = reverseStr(str, 0, len)
331+
332+ return str.join('');
315333}
316334
317- // 左旋转
318- var reverseLeftWords = function(s, n) {
319- const reverse = (sList, start, end) => {
320- for (let i = start, j = end; i < j; i++, j--) {
321- [sList[i], sList[j]] = [sList[j], sList[i]];
335+ // 根据提供的范围进行翻转
336+ function reverseStr(s, start, end) {
337+
338+ while (start < end) {
339+ [s[start], s[end]] = [s[end], s[start]]
340+
341+ start++;
342+ end--;
322343 }
323- }
324- const sList = s.split('');
325- reverse(sList, 0, n - 1);
326- reverse(sList, n, sList.length - 1);
327- reverse(sList, 0, sList.length - 1);
328- return sList.join('');
329- };
344+
345+ return s;
346+ }
330347```
331348
332349### TypeScript:
@@ -338,10 +355,35 @@ var reverseLeftWords = function(s, n) {
338355
339356### PHP:
340357
358+ ``` php
359+ <?php
360+ // 反转函数
361+ function reverse(& $s, $start, $end) {
362+ for ($i = $start, $j = $end; $i < $j; $i++, $j--) {
363+ $tmp = $s[$i];
364+ $s[$i] = $s[$j];
365+ $s[$j] = $tmp;
366+ }
367+ }
368+
369+ // 标准输入:读取右旋转位数和字符串
370+ $n = trim(fgets(STDIN));
371+ $s = trim(fgets(STDIN));
372+ // 字符串长度
373+ $len = strlen($s);
374+ // 先部分反转
375+ reverse($s, $len - $n, $len - 1);
376+ reverse($s, 0, $len - $n - 1);
377+ // 再整体反转
378+ reverse($s, 0, $len - 1);
379+
380+ echo $s;
381+ ?>
382+ ```
383+
341384
342385### Scala:
343386
344387
345388### Rust:
346389
347-
0 commit comments