字符串中的反转单词,

Reverse words in a string,

本文关键字:单词 字符串      更新时间:2023-10-16

Leetcode 问题:给定一个输入字符串,逐字反转该字符串。

例如给定 s = "天空是蓝色的",返回"蓝色是天空"。

谁能解释为什么leetcode总是给我错误符号:输入 : " "输出:"预期:"

当我在本地测试时,它输出只是预期的。奇怪。

#include <iostream>
#include <vector>
#include <map>
#include <string>
#include <stdlib.h>
#include <string>
using namespace std;
class Solution{
    public:
        static string reverseWords(string &s)
        {
            vector<string> words;
            string word = "";
            //get each word
            for(int i = 0 ; i <= s.size(); i++)
            {               
                if(s[i] == ' ' || i == s.size())
                {
                    if(word!="")
                    {
                        words.push_back(word);
                        word = "";
                    }
                }
                else
                {
                    word += s[i];
                }
            }
            // for (vector<string>::iterator i = words.begin(); i!=words.end(); i++) {
            //     cout<<*i<<endl;
            // }
            string reverseStr = "";
            //pop reverse order 
            int size = words.size();
            for(int i = 0; i < size ; i++)
            {
                if(i != size-1)
                {
                    reverseStr +=  words.back() + ' ';
                }
                else{
                    reverseStr += words.back();
                }
                words.pop_back();
            }
            return reverseStr;
        }
};
int main(int argc, char const *argv[])
{
    string s = " the sky is   blue ";
    Solution::reverseWords(s);
    return 0;
}

当字符串中没有单词时,输出将为空字符串。也就是说,输出字符串将"" 。它不应包含空格。

输入 : " " - 一个空格

预期输出:"" - 空字符串