题解 | #句子逆序#
句子逆序
http://www.nowcoder.com/practice/48b3cb4e3c694d9da5526e6255bb73c3
双指针法
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input=scanner.nextLine();
int j = input.length() - 1, i = j;
StringBuilder res = new StringBuilder();
while(i >= 0) {
while(i >= 0 && input.charAt(i) != ' ') i--; // 搜索首个空格(直到i=-1,退出while)
res.append(input.substring(i + 1, j + 1) + " "); // 添加单词 [i+1,j]
while(i >= 0 && input.charAt(i) == ' ') i--; // 跳过与下一个单词间的 空格(' ')
j = i; // j 指向下个单词的尾字符
}
System.out.println(res.toString());
}
}