代码随想录算法训练营第九天 | 翻转字符串里的单词、右旋转字符串

第四章 字符串part02

151.翻转字符串里的单词

题目链接/文章讲解/视频讲解:https://programmercarl.com/0151.%E7%BF%BB%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2%E9%87%8C%E7%9A%84%E5%8D%95%E8%AF%8D.html

var reverseWords = function(s) {
    // 去除首尾空格
    s = s.trim();
    
    // 创建一个字符数组并去除多余空格
    let str = [];
    for (let i = 0; i < s.length; i++) {
        // 跳过重复的空格
        if (s[i] === ' ' && s[i - 1] === ' ') continue;
        str.push(s[i]);
    }
    reverseRange(str, 0, str.length);
    for (let end = 0, start = 0; end <= str.length; end++) {
        if (str[end] === ' ' || end === str.length) {
            reverseRange(str, start, end);
            start = end + 1;
        }
    }
    return str.join('');
};

// 辅助函数:反转数组的指定范围
function reverseRange(arr, start, end) {
    let left = start, right = end - 1;
    while (left < right) {
        [arr[left], arr[right]] = [arr[right], arr[left]];
        left++;
        right--;
    }
}

卡码网:55.右旋转字符串

题目链接/文章讲解:
https://programmercarl.com/kama55.%E5%8F%B3%E6%97%8B%E5%AD%97%E7%AC%A6%E4%B8%B2.html

// 读取输入
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

let input = [];
rl.on('line', (line) => {
  input.push(line);
  if (input.length === 2) {
    let k = parseInt(input[0]);
    let s = input[1];
    
    // 计算右旋转的有效位数
    k = k % s.length;
    
    // 使用切片实现右旋
    let result = s.slice(-k) + s.slice(0, s.length - k);
    
    console.log(result);
    rl.close();
  }
});

字符串总结

题目链接/文章讲解:https://programmercarl.com/%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%80%BB%E7%BB%93.html

双指针回顾

文章讲解:https://programmercarl.com/%E5%8F%8C%E6%8C%87%E9%92%88%E6%80%BB%E7%BB%93.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值