Amy Zhou Ответов: 1

Новички искренне просят совета о струне


То, что описывает класс, - это "реверсирование строки", которая является правильной и пригодной для использования с веб-сайта Leetcode. Сегодня я хочу представить "реверсирование строки", введя значение самостоятельно (например, часть int main() ниже), но я все еще не могу выполнить его после долгого размышления. Новички искренне просят совета, может быть, вы также можете приложить свое письмо, чтобы я мог учиться, спасибо.

#include <iostream>
#include <string>
using namespace std;
    
class Solution
{
    public:
    string reverseWords(string s)
    {
        if (s.size() == 0)
        { 
            return s;
        }
        int front = 0, back = 0; 
        for (int i = 0; i < s.size() - 1; i++)
        {
            if (s[i] != ' ')
            {
                back++;
            }
            else
            {
                reverse(s.begin() + front, s.begin() + back); 
                front = back + 1;                             
                back = front;                                
            }
        } 
        back++;
        reverse(s.begin() + front, s.begin() + back); 
        return s;
    }
};
    
int main()
{
    Solution word01;
    string s1= "Hello caterpillar";
    word01 s1;
    cout << s1.reverseWords();
}


Что я уже пробовал:

Я хочу представить "реверсирование строки", введя значение самостоятельно (например, часть int main() ниже), но я все еще не могу выполнить его после долгого размышления.

Sandeep Mewara

А в чем проблема или где вы застряли?

Кстати, вы пытаетесь сделать разворот строки или разворот работы? Пример к вашему запросу может помочь.

Sandeep Mewara

А в чем проблема или где вы застряли?

Кстати, вы пытаетесь сделать разворот строки или разворот работы? Пример к вашему запросу может помочь.

Amy Zhou

1. мой вопрос заключается в том, чтобы отправить строку, которую я хочу, обратно в класс.
2. Разворот строки.

Проблема была решена, большое вам спасибо за ваш ответ!

1 Ответов

Рейтинг:
8

OriginalGriff

Посмотрите на свой код:

Solution word01;
string s1= "Hello caterpillar";
word01 s1;
cout << s1.reverseWords();
И что же вы от этого ожидаете?
Solution word01;
Объявляет переменную с именем word01 типа Solution
string s1= "Hello caterpillar";
Объявляет переменную с именем s1 типа string и присваивает ему значение - строковый литерал.
word01 s1;
Ставит две переменные рядом, ничего с ними не делая ...
Этот последний бит не будет компилироваться: система понятия не имеет, что с ним делать!
cout << s1.reverseWords();
Пытается вызвать метод в string класс reverseWords о строке в переменной s1 Так как нет никакого метода, вызываемого reverseWords Иона тех. string класс, который также не будет компилироваться.

reverseWords является частью Solution класс, вам нужно использовать свой экземпляр класса, вызвать на нем метод и передать ему свою строку в качестве параметра:
Solution word01;
string s1= "Hello caterpillar";
cout << word01.reverseWords(s1);


Amy Zhou

Я все понял, спасибо за помощь!

OriginalGriff

Всегда пожалуйста!