zoukankan      html  css  js  c++  java
  • 917. 仅仅反转字母

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

    示例 1:

    输入:"ab-cd"
    输出:"dc-ba"
    

    示例 2:

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

    示例 3:

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

    提示:

    1. S.length <= 100
    2. 33 <= S[i].ASCIIcode <= 122 
    3. S 中不包含  or "
    class Solution {
        public  String reverseOnlyLetters(String S) {
    
            char[] chars = S.toCharArray();
            int left=0;
            int right = S.length()-1;
    
            while(left < right){
                if(!isChar(chars[left])){
                    left++;
                }
                if(!isChar(chars[right])){
                    right--;
                }
    
                if(isChar(chars[left]) && isChar(chars[right])){
                    swap(chars,left,right);
                    left++;
                    right--;
                }
            }
    
            return new String(chars);
    
        }
    
        private void swap(char[] chars,int left,int right) {
    
            char temp = chars[left];
            chars[left] = chars[right];
            chars[right] = temp;
    
        }
    
        //判断是不是字母
        private boolean isChar(char c){
            if((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')){
                return true;
            }
    
            return false;
        }
    }
    

      

  • 相关阅读:
    PDO的预处理操作
    关于OOP(面向对象)
    关于MySql
    任务三
    任务二
    php文件操作
    php的会话技术
    php的常量 、变量和作用域
    php的函数和超全局变量
    预发布环境和分支部署
  • 原文地址:https://www.cnblogs.com/airycode/p/10250328.html
Copyright © 2011-2022 走看看