标签:空格 rds length string amp return data 翻转 problem
思路:双指针从后往前遍历,根据第一个遇到的空格划分单词,使用StringBuilder拼接。
贴一下从后往前最后一个单词怎么拼接:
1.如果首位为字母,while(i >= 0 && s.charAt(i) != ‘ ‘),i为-1时进行拼接然后跳出大循环。
2.如果首位为空格,也类似,只是不用拼接。
class Solution { public String reverseWords(String s) { //首先去除首首尾空格 s = s.trim(); int i = s.length() - 1, j = i; StringBuilder res = new StringBuilder(); while(i >= 0){ //必须要加i>=0,因为第0位不为空格,i会越界 while(i >= 0 && s.charAt(i) != ‘ ‘) i--; res.append(s.substring(i + 1, j + 1) + " "); //同理,第0位为空格会越界 while(i >= 0 && s.charAt(i) == ‘ ‘) i--; j = i; } //添加trim因为每次拼接最后加上了" ",会多一个空格 return res.toString().trim(); } }
标签:空格 rds length string amp return data 翻转 problem
原文地址:https://www.cnblogs.com/deerlet/p/14585246.html