如何按成对字符反转字符串?含奇数长度处理需求
成对反转字符串的实现方法
核心逻辑
将字符串按每两个字符为一组,交换每组内两个字符的位置;若字符串长度为奇数,最后一个单独的字符直接保留原位置。
JavaScript 实现方案
循环遍历写法
function reversePairs(str) { let result = ''; // 每次步进2,处理一对字符 for (let i = 0; i < str.length; i += 2) { // 存在第二个字符时,交换后拼接 if (i + 1 < str.length) { result += str[i + 1] + str[i]; } else { // 奇数长度时,直接追加最后一个字符 result += str[i]; } } return result; } // 测试用例 console.log(reversePairs('abcdef')); // 输出 'badcfe' console.log(reversePairs('abcde')); // 输出 'badce'
正则表达式简洁写法
利用正则匹配每两个字符的分组,替换时交换组内字符顺序:
function reversePairsWithRegex(str) { return str.replace(/(.)(.)?/g, (_, first, second) => second ? second + first : first); } // 测试用例 console.log(reversePairsWithRegex('abcdef')); // 'badcfe' console.log(reversePairsWithRegex('abcde')); // 'badce'
内容的提问来源于stack exchange,提问作者Hansanca
相关产品推荐
相关产品推荐

