内容简介:反转字符串,但只反转字符串中的字母,即将字符串转为字符数组,用两个指针,从两端向中间走, 依次找下一个字母进行交换,直到两个指针相碰撞。
反转字符串,但只反转字符串中的字母,即 a-z
, A-Z
。其他的字符保持原位。
Example 1:
Input: "ab-cd" Output: "dc-ba"
Example 2:
Input: "a-bC-dEf-ghIj" Output: "j-Ih-gfE-dCba"
Example 3:
Input: "Test1ng-Leet=code-Q!" Output: "Qedo1ct-eeLg=ntse-T!"
解法
将字符串转为字符数组,用两个指针,从两端向中间走, 依次找下一个字母进行交换,直到两个指针相碰撞。
class Solution {
public String reverseOnlyLetters(String S) {
char[] chars = S.toCharArray();
int i = 0, j = chars.length - 1;
while (i < j) {
while (i < j && !isLetter(chars[i])) {
i++;
}
while (i < j && !isLetter(chars[j])) {
j--;
}
if (i < j) {
char temp = chars[i];
chars[i] = chars[j];
chars[j] = temp;
i++;
j--;
}
}
return new String(chars);
}
private boolean isLetter(char c) {
return (c >= 65 && c <= 90) || (c >= 97 && c <= 122);
}
}
Runtime: 5 ms, faster than 93.93% of Java online submissions for Reverse Only Letters.
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
RGB转16进制工具
RGB HEX 互转工具
URL 编码/解码
URL 编码/解码