题解 | #牛群消息传递#
牛群消息传递
https://www.nowcoder.com/practice/28df6c40150a40b49c9c4d4ae1dd675d
知识点:字符串,双指针
我们首先需要找到每个不包含空格的单词,具体做法是利用双指针确定单词的首位位置,指向第一个不为空的字符,右指针指向最后一个不为空的字符,在向右移动时需要注意不能越界,得到单词后,将其存入list中,最后再逆序遍历list列表,将其组装成一个字符串,得到最终答案。
Java题解如下:
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return string字符串
*/
public String reverseWords (String s) {
// write code here
int n = s.length();
List<String> list = new ArrayList<>();
for(int i = 0; i < n; i++) {
if(s.charAt(i) == ' ') {
continue;
}
int j = i;
while(j < n && s.charAt(j) != ' ') {
j++;
}
list.add(s.substring(i, j));
i = j;
}
StringBuilder sb = new StringBuilder();
for(int i = list.size() - 1; i >= 0; i--) {
sb.append(list.get(i));
if(i > 0) {
sb.append(' ');
}
}
return sb.toString();
}
}
