题解 | #牛群消息传递#
牛群消息传递
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(); } }