【力扣算法题】反转字符串中单词

【力扣算法题】反转字符串中单词


文章目录

  • 【力扣算法题】反转字符串中单词
  • 题目介绍
  • 题解
    • 1. 开新空间(力扣官方解法1)
    • 2. 存索引,原地反转单词(个人解法/力扣官方解法2)


题目介绍

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

示例 1:

输入:s = “Let’s take LeetCode contest”
输出:“s’teL ekat edoCteeL tsetnoc”

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii


题解

1. 开新空间(力扣官方解法1)

思路就是开一个同大小的字符串,然后找空格,发现空格之后倒序把单词插入到新字符串中,然后追加一个空格,一直这样下去就能又反转单词又保留空格

力扣官方C++源码:

string reverseWords(string s) {
   
    string ret;
    int length = s.length();
    int i = 0;
    while (i < length) {
   
        int start = i;
        while (i < length && s[i] != ' ') {
   
            i++;
        }
        for (

你可能感兴趣的:(力扣算法题,c++,面试,算法)