欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简单-LeetCode 面试题58. I.翻转单词顺序

程序员文章站 2022-04-30 18:21:59
...

题目

来源: I.翻转单词顺序

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

示例

简单-LeetCode 面试题58. I.翻转单词顺序

解题思路及代码

1. 思路

主要的思路就是,从字符串最后一个单词开始,倒着遍历字符串,取出字符串中的每一个单词放入结果数组中即可。
采用双指针来实现,去除字符串的头尾空格,设置双指针i j,当i,j分别指向每个单词的左右边界时,取出对应单词,直到i遍历至字符串第一个字符,取出单词放入结果数组中后,直接返回结果数组。

2. 代码
var reverseWords = function(s) {
    s = s.trim();
    var res = [];
    var i = s.length - 1;
    var j = i;
    while (i >= 0) {
        while (s[i] != " " && i >= 0) {
            i--;
        }
        res.push(s.slice(i + 1, j + 1) + " ");
        while (s[i] == " " && i >= 0) {
            i--;
        }
        j = i;
    }
    return res.join("").trim();
};
相关标签: 刷题之Leetcode