917. 僅僅反轉字母(邏輯)1
阿新 • • 發佈:2020-12-17
技術標籤:LeetCode
給定一個字串S,返回“反轉後的”字串,其中不是字母的字元都保留在原地,而所有字母的位置發生反轉。
示例 1:
輸入:"ab-cd"
輸出:"dc-ba"
示例 2:
輸入:"a-bC-dEf-ghIj"
輸出:"j-Ih-gfE-dCba"
示例 3:
輸入:"Test1ng-Leet=code-Q!"
輸出:"Qedo1ct-eeLg=ntse-T!"
解法一:邏輯
class Solution { public String reverseOnlyLetters(String S) { StringBuilder sb = new StringBuilder(S); for (int i = 0, j = S.length() - 1; i < j;) { if (!Character.isLetter(sb.charAt(i))) { ++i; } else if (!Character.isLetter(sb.charAt(j))) { --j; } else { sb.setCharAt(i, S.charAt(j)); sb.setCharAt(j, S.charAt(i)); j--; i++; } } return sb.toString(); } }