LeetCode 917. Reverse Only Letters (僅僅反轉字母)
阿新 • • 發佈:2018-12-09
題目標籤: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/