题目描述:

image-20250506152317146

代码:

package interview;

/**
* @author hxw
* @create 2025-05-06-8:40
* @Description: 151. 反转字符串中的单词 中等
*/
public class one_hundred_and_fifty_one {
public static void main(String[] args) {
String s = "Let's take LeetCode contest ";
String result = new Solution().reverseWords(s);
System.out.println(result);

}

/**
* 目的:给你一个字符串 s ,请你反转字符串中 单词 的顺序。
* 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
* 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。
* 注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。
*
* 思路:stringbuilder 反转
*/

static class Solution {
public String reverseWords(String s) {
//根据空格分割字符串
String[] str = s.split(" ");
StringBuilder sb = new StringBuilder();
for (int i = str.length - 1; i >= 0; i--) {
if (str[i].length() > 0) {
sb.append(str[i]);
sb.append(" ");
}
}
return sb.toString().trim();
}
}
}