首页 > 其他分享 >151. 反转字符串中的单词

151. 反转字符串中的单词

时间:2025-01-15 23:22:01浏览次数:1  
标签:151 slow string int 反转 单词 ++ 字符串

题目

不会做,老老实实看卡哥思路,这里面讲的很详细,有很多值得学习揣摩的东西。

在把空格处理好后,先反转整体,再反转其中的单词的方法,很值得学习。即使用整体反转+局部反转就可以实现反转单词顺序的目的

跟着卡哥代码敲了一遍:

class Solution {
public:
    void reverse(string &s, int start, int end)
    {
        for (int i = start, j = end; i < j; ++i, --j)
            swap(s[i], s[j]);
    }

    void removeExtraSpaces(string &s)
    {
        int slow;
        for (int i = 0; i < s.size(); ++i)
        {
            if (s[i] != ' ')
            {
                if (slow != 0)  s[slow++] = ' ';
                while (i < s.size() && s[i] != ' ')
                    s[slow++] = s[i++];
            }
        }
        s.resize(slow);
    }

    string reverseWords(string s) {
        removeExtraSpaces(s);
        reverse(s, 0, s.size() - 1);
        int start = 0;
        for (int i = 0; i <= s.size(); ++i)
            if (i == s.size() || s[i] == ' ')
            {
                reverse(s, start, i - 1);
                start = i + 1;
            }
        return s;
    }
};

标签:151,slow,string,int,反转,单词,++,字符串
From: https://www.cnblogs.com/hisun9/p/18673677

相关文章

  • 55. 右旋字符串(第八期模拟笔试)
    题目自己写的:#include<iostream>#include<string>#include<algorithm>usingnamespacestd;intmain(){intn;strings;cin>>n>>s;reverse(s.begin(),s.end());reverse(s.begin(),s.begin()+n);r......
  • LeetCode字符串
    LeetCode字符串LeetCode字符串刷题记录基础知识字符串和数组很相似每个元素的数据类型相同都可以通过下标索引访问字符串比大小从第0个位置开始,依次比较对应位置上的字符编码大小defcompare(str1,str2):i=0j=0whilei<len(str1)andj<len(s......
  • js 关于日期字符串转日期格式(Date)时间增加了8小时
    转换的日期字符串2025-01-15转换vardateStr='2025-01-15'vardate=newDate(dateStr).getTime()结果:WedJan15202508:00:00GMT+0800(中国标准时间)原因:如果有日期前导有0(即表示以ISO格式表示日期),Javascript引擎就假设用户处于格林尼治国际标准时的时区,所......
  • 字符串dp+匹配
    https://codeforces.com/problemset/problem/2050/E#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'usingll=longlong;usingpii=pair<char,int>;constdoublePI=acos(-1);constintN=1e3+10;constintmod=1e9......
  • 判断字符串是否为json字符串方法
    要验证一个字符串是否为有效的JSON格式,可以使用JavaScript的JSON.parse()方法,并结合try...catch语句来捕获解析过程中可能出现的异常。以下是一个示例函数:functionisJSON(str){if(typeofstr==='string'){try{constobj=JSON.par......
  • 宽窄字节3:宽窄字节字符串的转换
    文章目录前言一、为什么要进行转换?二、使用微软提供的API函数实现宽窄字节转换三、使用ATL提供的CA2W、CW2A、CT2W、CT2A来更方便地转换总结前言宽窄字节3:宽窄字节字符串的转换。一、为什么要进行转换?并不是程序中所有的字符串都用Unicode宽字节来表示,如网络发送......
  • 【C语言】_字符串函数strcpy
    目录1. 函数声明及功能2.使用示例3.注意事项4. 模拟实现4.1第一版:基本功能+判空+const修饰4.2第二版:优化对于'\0'的单独拷贝4.3第三版:仿strcpy的char*返回值1. 函数声明及功能char*strcpy(char*destination,constchar*source); strcpy功能:字......
  • 字符串匹配(BP&KMP算法)
    BP&KMP算法字符串匹配前言BP算法(基础)引文KMP算法(进阶)伪代码描述next数组递归求解思路算法思路详解KMP算法实现及测试(先做在看!)字符串匹配前言本文是基于懒猫老师的课程----BP&KMP所写,在观看本文之前最好配合视频或者PPT食用更佳,地址我附在下面:https://www.bilibi......
  • 【轻松掌握数据结构与算法】字符串算法(String Algorithms)
    字符串算法概述字符串匹配算法是计算机科学中的一个重要领域,主要用于在文本中查找特定模式(子字符串)的出现位置。这些算法在文本编辑器、搜索引擎、生物信息学等领域有广泛的应用。暴力法(BruteForceMethod)暴力法是最直接的字符串匹配算法,它通过逐个字符比较来查找模式在文......
  • 《CPython Internals》阅读笔记:p151-p151
    《CPythonInternals》学习第9天,p151-p1510总结,总计1页。一、技术总结无。二、英语总结(生词:1)1.marshal(1)marshalingMarshallingormarshaling(USspelling)istheprocessoftransformingthememoryrepresentationofanobjectintoadataformsuitablefo......