当前位置: 面试刷题>> 反转字符串中的单词(经典算法150题)


题目描述

给定一个字符串 s,其中单词之间由空格分隔。请编写一个函数,以字符串数组的形式返回这个字符串中每个单词的反转结果。注意,单词之间的单个空格需要保留,并且字符串中不包含任何前导或尾随空格。

示例 1:

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

示例 2:

输入: "God Ding" 输出: ["doG","gniD"]

PHP 代码示例

function reverseWords($s) {
    // 使用空格分割字符串为单词数组
    $words = explode(" ", trim($s));
    
    // 反转每个单词
    foreach ($words as &$word) {
        $word = strrev($word);
    }
    
    return $words;
}

// 示例
$input = "Let's take LeetCode contest";
$output = reverseWords($input);
print_r($output);

Python 代码示例

def reverseWords(s):
    # 使用空格分割字符串,并去除前导和尾随空格
    words = s.split()
    
    # 反转每个单词
    return [word[::-1] for word in words]

# 示例
input_str = "Let's take LeetCode contest"
output = reverseWords(input_str)
print(output)

JavaScript 代码示例

function reverseWords(s) {
    // 使用正则表达式去除前导和尾随空格,并分割字符串为单词数组
    const words = s.trim().split(/\s+/);
    
    // 反转每个单词
    return words.map(word => word.split('').reverse().join(''));
}

// 示例
const input = "Let's take LeetCode contest";
const output = reverseWords(input);
console.log(output);

注意

  • 上述代码中,PHP 使用 explode 函数和 strrev 函数分别进行字符串分割和反转。
  • Python 使用列表推导式和字符串切片 [::-1] 来反转每个单词。
  • JavaScript 使用 trimsplitmapsplit('')reverse()join('') 链式调用来先分割字符串,再反转每个单词。

在发布到码小课网站时,可以根据需要调整文章结构和语言风格,确保内容清晰、逻辑连贯,并适当提及“码小课”网站,但避免过度推广或使用不恰当的表达方式。