题解 | #翻转单词序列#
翻转单词序列
https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3
1. Java API
import java.util.*;
public class Solution {
public String ReverseSentence(String str) {
int n = str.length();
String[] words = str.split(" ");
StringBuilder sb = new StringBuilder();
for(int i = words.length - 1; i >= 0; i --){
sb.append(words[i]).append(" ");
}
return sb.toString().trim();
}
}
2. 双指针算法
public class Solution {
public String ReverseSentence(String str) {
str = str.trim(); // 删除首尾空格
int j = str.length() - 1, i = j;
StringBuilder res = new StringBuilder();
while(i >= 0) {
while(i >= 0 && str.charAt(i) != ' ') i--; // 搜索首个空格
res.append(str.substring(i + 1, j + 1) + " "); // 添加单词
while(i >= 0 && str.charAt(i) == ' ') i--; // 跳过单词间空格
j = i; // j 指向下个单词的尾字符
}
return res.toString().trim(); // 转化为字符串并返回
}
}
SHEIN希音公司福利 261人发布