1. 程式人生 > >LeetCode 917. Reverse Only Letters (僅僅反轉字母)

LeetCode 917. Reverse Only Letters (僅僅反轉字母)

題目標籤:String

 利用left, right 兩個pointers, 從左右開始 互換 字母。如果遇到的不是字母,那麼繼續移動到下一個。

 

Java Solution:

Runtime beats 29.87% 

完成日期:12/08/2018

關鍵點:two pointers

 1 class Solution {
 2     public String reverseOnlyLetters(String S) {
 3         char[] charArr = S.toCharArray();
 4         int left = 0;
5 int right = S.length() - 1; 6 7 while(left < right) 8 { 9 if(Character.isLetter(charArr[left]) && Character.isLetter(charArr[right])) 10 { 11 char temp = charArr[left]; 12 charArr[left] = charArr[right];
13 charArr[right] = temp; 14 15 left++; 16 right--; 17 } 18 19 if(!Character.isLetter(charArr[left])) 20 left++; 21 if(!Character.isLetter(charArr[right])) 22 right--;
23 24 } 25 26 return new String(charArr); 27 } 28 }

參考資料:N/A

LeetCode 題目列表 - LeetCode Questions List

題目來源:https://leetcode.com/