leetcode 算法题849 (简单240) 仅仅反转字母

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/FYuu95100/article/details/102724512

leetcode 算法题849 (简单240) 仅仅反转字母

  • 题目介绍
给定一个字符串 S,
返回 “反转后的” 字符串,
其中不是字母的字符都保留在原地,
而所有字母的位置发生反转。
  • 示例

输入:“ab-cd”
输出:“dc-ba”

输入:“a-bC-dEf-ghIj”
输出:“j-Ih-gfE-dCba”

输入:“Test1ng-Leet=code-Q!”
输出:“Qedo1ct-eeLg=ntse-T!”

S.length <= 100
33 <= S[i].ASCIIcode <= 122
S 中不包含 \ or "

  • 解法一
/**
 * @param {string} S
 * @return {string}
 */
var reverseOnlyLetters = function(S) {
    let start = 0, end = S.length - 1, startStr = endStart = '';
    while(start <= end) {
      while(!isLetter(S.charCodeAt(start)) && start < end) {
        startStr += S[start++]
      }
      while(!isLetter(S.charCodeAt(end)) && start < end) {
        endStart = S[end--] + endStart;
      }
      startStr += S[end--];
      if(start > end) {
        return startStr + endStart;
      }
      endStart = S[start++] + endStart;
    }
    return startStr + endStart;
};

const isLetter = code => {
  console.log(code)
  return (code > 64 && code < 91) || (code > 96 && code < 123);
}

执行用时 : 100 ms, 在所有 JavaScript 提交中击败了21.59%的用户

内存消耗 : 37.7 MB, 在所有 JavaScript 提交中击败了5.55%的用户

猜你喜欢

转载自blog.csdn.net/FYuu95100/article/details/102724512