LeetCode交流

LeetCode: 翻转字符串里的单词

2019-02-17  本文已影响21人  一萍之春

翻转字符串里的单词


题目叙述

给定一个字符串,逐个翻转字符串中的每个单词。

示例:

输入: "the sky is blue",
输出: "blue is sky the".

说明:
解题思路:

这一道题站在Java的角度上来说比较简单实现,也就是将原字符串根据" "开始进行分割成为一个字符串数组,开始对数组从后往前进行遍历,因为在单词可能有多个" ",因此在字符串进行调用trim()函数(它的作用也就是将字符串中的头和尾部的空格去掉),之后如果字符串不为空说明它是一个单词添加进结果集中即可,C语言实现的可以自己实现一下这个方法就好了。按" "分割也可以使用C语言自己实现就好了。这一道题比较简单。时间复杂度是O(n)。

代码实现:
public class Solution {
   public String reverseWords(String s) {
       StringBuffer res=new StringBuffer();
       if (s==null||s.trim().length()==0){
           return res.toString();
       }
       List<String> list=new ArrayList<>();
       String[] strs=s.split(" ");
       for (int i=strs.length-1;i>-1;--i){
           if (strs[i].trim().length()>0){
               list.add(strs[i].trim());
           }
       }
       res.append(list.get(0));
       for (int i=1;i<list.size();++i){
           res.append(" ");
           res.append(list.get(i));
       }
       return res.toString();
   }
}
上一篇下一篇

猜你喜欢

热点阅读