侧边栏壁纸
博主头像
Lin2J博主等级

升级了服务器,访问应该会更加流畅🇨🇳

  • 累计撰写 99 篇文章
  • 累计创建 43 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

58-Ⅰ 翻转单词顺序

Lin2J
2021-07-21 / 0 评论 / 0 点赞 / 468 阅读 / 693 字 / 正在检测是否收录...

剑指 Offer 58 - I. 翻转单词顺序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。

解题思路:

可以将原数组通过空格分割成字符串数组,根据题意可以知道,需要将字符串数组后面的元素移到前面去。

代码:

public String reverseWords(String s) {
    String[] ss = s.trim().split(" ");
    StringBuilder ans = new StringBuilder();
    for (int i = ss.length - 1; i >= 0; i--) {
        if ("".equals(ss[i])) {
            continue;
        }
        ans.append(ss[i]).append(" ");
    }
    return ans.toString().trim();
}

复杂度分析

  • 时间复杂度$O(N)$:总体为线性时间复杂度。
    • split() 方法:$O(N)$。
  • 空间复杂度$O(N)$:字符串数组占线性大小的额外空间。
0

评论区