当前位置:   article > 正文

力扣151--反转字符串中的单词(优)

力扣151--反转字符串中的单词(优)

清晰易懂,简单高效!

大体思路:

每次截取到想要的单词,拼接到新的sb中,过程中伴随双指针进行空格位置指向控制,

其中如果start指针如果==0的情况要放在第一个判断条件防止边界条件失效,并且这种情况下截取的是最后一个单词,此时不需要加额外空格。

  1. class Solution {
  2.     public String reverseWords(String s) {
  3.         s = s.trim();
  4.         StringBuilder sb = new StringBuilder();
  5.         int end = s.length() - 1;
  6.         int start = end;
  7.         while(start >= 0){
  8. //这里分四种情况来决定每次截取新的字符串位置
  9.             if(start == 0) {
  10.                 sb.append(s.substring(start, end + 1));
  11.                 start--;
  12.             } else if(s.charAt(start) !=' ') {
  13.                 start--;
  14.             } else if(s.charAt(start) == ' '){
  15.                 sb.append(s.substring(start + 1, end + 1) + " ");
  16.                 while(start >=0 && s.charAt(start) == ' ')
  17.                     start--;
  18.                 end = start;
  19.             }  else
  20.                 start--;
  21.         }
  22.         return sb.toString();
  23.     }
  24. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/182428
推荐阅读
相关标签
  

闽ICP备14008679号