每日一题——LeetCode917

方法一 双指针:

左右指针分别指向字符串的起始和末尾,分别比较两个指针指向的元素是否为英文字母,如果都是则直接交换,哪个指针碰到非英文字母就向前或向后移动一位,另一个指针不变,再次当两个指针指向的元素都是英文字母时再次交换

var reverseOnlyLetters = function(s) {
  var left = 0,right =s.length-1
    var reg=new RegExp(/^[a-zA-Z]+$/)
    s=s.split('')
    while(left<right){
        if(reg.test(s[left])){
            if(reg.test(s[right])){
                var temp = s[left]
                s[left]=s[right]
                s[right]=temp
                right--
                left++
            }else{
                right--
            }
        }else{
            left++
        }
    }
   return s.join('')
};

消耗时间和内存情况:

方法二 逆转字符数组

创建一个新数组,非英文字母的位置与原字符串保持一致,将原字符串的英文字母逆序添加到新数组,再把新数组转化为字符串

var reverseOnlyLetters = function(s) {
 s=s.split('')
 var len = s.length-1,reverse=[],idx=0
 var reg=new RegExp(/^[a-zA-Z]+$/)
 for(var i=0;i<s.length;i++){
     if(!reg.test(s[i])) {
         reverse[i]=s[i]
     }
 }
 for(var i=s.length-1;i>=0;i--){
     while(!reg.test(reverse[idx])){
         idx++
     }
     if(reg.test(s[i])){
         reverse[idx]=s[i]
         idx++
     }
 }
 return reverse.join('')
};

消耗时间和内存情况:

相关推荐

  1. leetcode每日4

    2023-12-29 21:18:02       58 阅读
  2. leetcode每日37

    2023-12-29 21:18:02       55 阅读
  3. leetcode每日38

    2023-12-29 21:18:02       58 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-29 21:18:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-29 21:18:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-29 21:18:02       87 阅读
  4. Python语言-面向对象

    2023-12-29 21:18:02       96 阅读

热门阅读

  1. Linux 查看网络命令 netstat 详解

    2023-12-29 21:18:02       46 阅读
  2. Python 爬虫 教程

    2023-12-29 21:18:02       55 阅读
  3. 由js文件中引入另外的js文件想到的

    2023-12-29 21:18:02       60 阅读
  4. Linux的中断响应流程是什么

    2023-12-29 21:18:02       59 阅读
  5. Unity 关于json数据的解析方式(LitJson.dll插件)

    2023-12-29 21:18:02       57 阅读
  6. PageHelper 使用示例

    2023-12-29 21:18:02       58 阅读
  7. 09-网络安全框架及模型-(SSE-CMM)

    2023-12-29 21:18:02       41 阅读