当前位置: 面试刷题>> 反转字符串中的单词(经典算法150题)
### 题目描述
给定一个字符串 `s`,其中单词之间由空格分隔。请编写一个函数,以字符串数组的形式返回这个字符串中每个单词的反转结果。注意,单词之间的单个空格需要保留,并且字符串中不包含任何前导或尾随空格。
**示例 1**:
输入: `"Let's take LeetCode contest"`
输出: `["s'teL","ekat","edoCteeL","tsetnoc"]`
**示例 2**:
输入: `"God Ding"`
输出: `["doG","gniD"]`
### PHP 代码示例
```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 代码示例
```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 代码示例
```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 使用 `trim`、`split`、`map`、`split('')`、`reverse()` 和 `join('')` 链式调用来先分割字符串,再反转每个单词。
在发布到码小课网站时,可以根据需要调整文章结构和语言风格,确保内容清晰、逻辑连贯,并适当提及“码小课”网站,但避免过度推广或使用不恰当的表达方式。