leetcode151-Reverse Words in a String(翻转字符串单词的位置)

本篇博客详细介绍了LeetCode 151题——翻转字符串中单词的位置。内容涵盖问题描述、两种解法(包括需要辅助空间和不需要辅助空间的方法)以及对字符串的扩展变形处理,如保留首尾空格并翻转单词的大小写。
摘要由CSDN通过智能技术生成

1、问题描述:

Given an input string, reverse the string word by word.

For example,

Given s = "the sky is blue",
return "blue is sky the".

Clarification:

What constitutes a word?
A sequence of non-space characters constitutes a word.
一串非空字符组成单词

Could the input string contain leading or trailing spaces?
Yes. However, your reversed string should not contain leading or trailing spaces.
输入字符串的首尾都可能包含空格,但是翻转后的字符串不要有

How about multiple spaces between two words?
Reduce them to a single space in the reversed string.
应该处理两单词间连续多个空格的情况,使其只包含一个

2、问题求解:

方法一:O(n)时间,并且需要辅助空间O(n)

class Solution {
public:
    void reverseWords(string &s) {
  //如s为“the sky”
        int n=s.size();
        int i=n-1;
        //辅助字符串存放结果字符串
        string stmp="";//最后为“sky the”
        while(i >= 0)
        {
            while(s[i]==' ' && i>=0)
            {
  //(1)处理连续有多个空格的情况
                i--;
            }
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值