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;
}
答案 0 :(得分:1)
如果字符串中没有单词,则输出将为空字符串。也就是说,输出字符串将是""
。它不应该包含空格。
输入:" "
- 空格
预期输出:""
- 空字符串