腾讯五十题 反转字符串中的单词III
题目链接
方法一:
class Solution {
public String reverseWords(String s) {
//先将字符串用空格划分成字符串数组
String[] strs = s.split(" ");
StringBuffer buffer = new StringBuffer();
//将每一个字符串反转后追加到buffer中并用空格隔开
for(int i=0;i<strs.length;i++){
buffer.append(new StringBuffer(strs[i]).reverse());
buffer.append(" ");
}
//最后会多一个空格,用trim()去掉
return buffer.toString().trim();
}
}
方法二:局部反转
class Solution {
public String reverseWords(String s) {
char[] arr = s.toCharArray();
int n = arr.length;
int left = 0,right = 0;
while(right <= n) {
if(right == n ||arr[right] == ' ') {
reverseString(arr, left, right -1);
left = right + 1;
}
right++;
}
return new String(arr);
}
public void reverseString(char[] s,int left, int right) {
while(left < right) {
s[left] ^= s[right];
s[right] ^= s[left];
s[left] ^= s[right];
left++;
right--;
}
}
}
本文来自博客园,作者:蹇爱黄,转载请注明原文链接:https://www.cnblogs.com/jianjiana/p/15876329.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?