首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LeetCode每日一题 557:反转字符串中的单词 III

周末快乐, 恢复更新了.

题目

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

示例 1:

输入:"Let's take LeetCode contest"

输出:"s'teL ekat edoCteeL tsetnoc"

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

分析

不同于之前的反转字符串I, 这道题反转的是一个句子或多个单词的短语, 并且不是原地反转在 C 的实现中, 原先的原地解法仍可保留, 不过在此基础上, 添加一个检测单词的功能, 再调用此前的解法逐一对单词进行反转即可.

在 Python 实现中,传入的也不再是字符数组, 而是一个字符串.字符串在 Python 中是不可变的类型, 之前那道题的写法在这里就不能直接用了.

实现

C语言

Python

在Python的实现中, 我没有采用上方C的解法, 原因是传入和返回的均非字符串数组, 若采用原地反转需要先转数组(单词), 再转回字符串(单词), 再拼接字符串数组(句子), 最后转回字符串返回(句子).

整个过程过于繁琐, 这里直接用 Python 的数组自带的方法, 对整个字符串做两次翻转实现反转字符串.

第一次整体反转, 整个字符串逆序.( )第二次单词次序反转, 对反转字符串分割为单词列表( ), 对单词次序反转( ).

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190217G0WPVA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券