登录
  • #刷题
  • #leetcode

真心照不出错误,在自己电脑上也跑出了所有的可能的结果。

tobias0705
2455
28
这道题是吧输入的一句话反过来。但是就是找不到我的代码的错误在哪里。leetcode上说runtime error。告诉我再输入“a”的时候出了问题。但是我在自己电脑上也试过了,没问题啊。

求各位帮我看看。谢谢啦。
#include"iostream"[br][/br][br][/br]#include"string"[br][/br][br][/br]#include"solutions.h"[br][/br][br][/br]using namespace std;[br][/br][br][/br]void main(void)[br][/br][br][/br]{[br][/br][br][/br]        string myStr("             ");[br][/br][br][/br]        solution mySln; [br][/br][br][/br]        cout << myStr << endl;[br][/br][br][/br]        [br][/br][br][/br]        mySln.strRev1(myStr);[br][/br][br][/br]        cout << myStr << endl;[br][/br][br][/br]        cout << myStr.at(0) << endl;[br][/br][br][/br]        system("PAUSE");[br][/br][br][/br]}[br][/br][br][/br]/***********Class Definition*********/[br][/br][br][/br]/***********solutions.h***********/[br][/br][br][/br]#pragma once;[br][/br][br][/br]#ifndef SOLUTION[br][/br][br][/br]#define SOLUTION[br][/br][br][/br]#include"string"[br][/br][br][/br]#include"iostream"[br][/br][br][/br]#include<assert.h>[br][/br][br][/br]using namespace std;[br][/br][br][/br]class solution[br][/br][br][/br]{[br][/br][br][/br]public:[br][/br][br][/br]        void strRev(string &s);[br][/br][br][/br]//protected:[br][/br][br][/br]};[br][/br][br][/br]void solution::strRev(string &s)[br][/br][br][/br]{[br][/br][br][/br]        int wordLen = 0, len, start = s.length();[br][/br][br][/br]        string temp;[br][/br][br][/br]        if (s.length() != 0)[br][/br][br][/br]        {[br][/br][br][/br]                while (s.at(0) == ' ') s.erase(0, 1); // Delete the spaces ahead.[br][/br][br][/br]                len = s.length();[br][/br][br][/br]                while (s.at(len - 1) == ' ') // Delete the space consecutivly.[br][/br][br][/br]                {[br][/br][br][/br]                        s.erase(len - 1, 1);[br][/br][br][/br]                        len = s.length();[br][/br][br][/br]                }[br][/br][br][/br]                for (int i = len - 1; i >= 0; i--)[br][/br][br][/br]                {[br][/br][br][/br]                        wordLen += 1;[br][/br][br][/br]                        if (i <= len - 1)[br][/br][br][/br]                        {[br][/br][br][/br]                                if ((s.at(i) == ' ') && (s.at(i + 1) != ' '))[br][/br][br][/br]                                {[br][/br][br][/br]                                        start = i;[br][/br][br][/br]                                        temp.append(s, start + 1, wordLen - 1);[br][/br][br][/br]                                        temp.append(" ");[br][/br][br][/br]                                        wordLen = 0;[br][/br][br][/br]                                }[br][/br][br][/br]                                else if ((s.at(i) == ' ') && (s.at(i + 1) == ' '))[br][/br][br][/br]                                {[br][/br][br][/br]                                        s.erase(i, 1);[br][/br][br][/br]                                        len = s.length();[br][/br][br][/br]                                        wordLen = 0;[br][/br][br][/br]                                }[br][/br][br][/br]                                else if (i == 0)[br][/br][br][/br]                                {[br][/br][br][/br]                                        start = i;[br][/br][br][/br]                                        temp.append(s, start, wordLen);[br][/br][br][/br]                                        wordLen = 0;[br][/br][br][/br]                                }[br][/br][br][/br]                        }[br][/br][br][/br]                }[br][/br][br][/br]                s.assign(temp);[br][/br][br][/br]        }[br][/br][br][/br]        else[br][/br][br][/br]        {[br][/br][br][/br]                printf("\nThere is not any words in this sentencs. \n");[br][/br][br][/br]        }[br][/br][br][/br]}[br][/br][br][/br]#endif
28条回复
热度排序

发表回复