leetcode講解--917. Reverse Only Letters

題目

Given a string S, return the "reversed" string where all characters that are not a letter stay in the same place, and all letters reverse their positions.java

Example 1:數組

Input: "ab-cd"
Output: "dc-ba"

Example 2:指針

Input: "a-bC-dEf-ghIj"
Output: "j-Ih-gfE-dCba"

Example 3:code

Input: "Test1ng-Leet=code-Q!"
Output: "Qedo1ct-eeLg=ntse-T!"

Note:字符串

  1. S.length <= 100
  2. 33 <= S[i].ASCIIcode <= 122
  3. S doesn't contain \ or "

講解

字符串操做,將字母reverse,其餘字符保持在原來位置上。我使用了兩個數組,一個指針string

java代碼

class Solution {
    public String reverseOnlyLetters(String S) {
        char[] c = S.toCharArray();
        char[] result = S.toCharArray();
        int index = result.length-1;
        for(int i=0;i<c.length;i++){
            if(c[i]>='a' && c[i]<='z' || c[i]>='A' && c[i]<='Z'){
                while(index>=0 && !(result[index]>='a' && result[index]<='z' || result[index]>='A' && result[index]<='Z')){
                    index--;
                }
                if(index>=0)
                    result[index--] = c[i];
            }
        }
        return String.valueOf(result);
    }
}
相關文章
相關標籤/搜索