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;
        }
    }
    

      

  • 相关阅读:
    leetcode 567 滑动窗口
    田忌赛马
    去除CSDN无用的打印边框,显示数据
    操作系统博客清单
    OpenKiwi学习笔记
    开源minigui移植
    嵌入式GUI总结
    short int 变量的取值范围
    68 进程等待机制的实现 下
    67 进程等待机制的实现 上
  • 原文地址:https://www.cnblogs.com/airycode/p/10250328.html
Copyright © 2011-2022 走看看