题目来源:https://leetcode-cn.com/problems/reverse-only-letters/
大致题意:
给一个字符串,其中有字母和其他字符,在保证其他字符位置不变的情况下,将所有字母所在位置翻转
思路
- 遍历字符串,取出所有字母
- 翻转取出的字母,形成新字符串
- 便利原字符串,找到其他字符所在位置,将对应的字符插入到新字符串的对应位置中
代码:
public String reverseOnlyLetters(String s) {
StringBuffer sb = new StringBuffer();
int n = s.length();
// 取出字母
for (int i = 0; i < n; i++) {
char c = s.charAt(i);
if (Character.isLetter(c)) {
sb.append(c);
}
}
// 翻转
sb.reverse();
// 插入其他字符
for (int i = 0; i < n; i++) {
char c = s.charAt(i);
if (!Character.isLetter(c)) {
sb.insert(i, c);
}
}
return sb.toString();
}
该博客介绍了如何在保持非字母字符位置不变的情况下,翻转字符串中的所有字母。给出的解决方案包括遍历字符串,提取字母,翻转字母序列,然后将非字母字符按原位置插入到新字符串中,实现字符串的特定翻转操作。
2971

被折叠的 条评论
为什么被折叠?



