力扣(LeetCode)算法题解:557. 反转字符串中的单词 III

(一)题目描述

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

提示:
在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

(二)输入、输出示例

示例 1:

输入:"Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"

(三)代码实现

方法1(php版):

解题思路

1.本题需要实现字符串的反转,但又不是整体的反转。
2.因为“每部分”之间,有空格隔开了,可以将字符串用空格进行分割,分割成数组。将数组的每部分进行反转。最后再将数组的元素根据空格拼接。

代码实现

class Solution {
    
    

    /**
     * @param String $s
     * @return String
     */
    function reverseWords($s) {
    
    
        $arr = explode(" ",$s); // 字符串分割成数组
        foreach($arr as $k => $v){
    
    
            $arr[$k] = strrev($v); // strrev()函数反转字符串
        }
        $s = join(" ", $arr); // 数组拼接成字符串
        return $s;
    }
}

性能分析

运行时间 内存消耗
16ms 15.1 MB