【力扣每日一题】917. 仅仅反转字母

题目

给你一个字符串 s ,根据下述规则反转字符串:

  • 所有非英文字母保留在原有位置。
  • 所有英文字母(小写或大写)位置反转。

返回反转后的 s 。
地址:https://leetcode-cn.com/problems/reverse-only-letters/

题解

解题思路

字符串,对撞指针,具体定义可看https://blog.csdn.net/AtalantaDavis/article/details/122692769

代码

var reverseOnlyLetters = function(s) {
  const sArr = s.split('');
  for(let left = 0, right = sArr.length - 1; left < right; right--, left++) {
    while(!/[a-zA-Z]/ig.test(sArr[left]) && left < right) {
      left++;
    }
    while(!/[a-zA-Z]/ig.test(sArr[right]) && left < right) {
      right--;
    }
    [sArr[left], sArr[right]] = [sArr[right], sArr[left]];
  }
  return sArr.join('');
};
上一篇:[每日一题]152:仅仅反转字母


下一篇:HTTP1.0和HTTP1.1和HTTP2.0的区别