Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Optymalizacja] Jak szybko znaleźć najdłuższy ciąg zbudowany z litery 'a'

Ostatnio zmodyfikowano 2013-05-22 17:47
Autor Wiadomość
KrzychU5212
Temat założony przez niniejszego użytkownika
[Optymalizacja] Jak szybko znaleźć najdłuższy ciąg zbudowany z litery 'a'
» 2013-05-18 19:22:29
Witam mam problem z optymalizacją programu. Zadanie programu polega na znalezieniu w ciągu wprowadzonym przez usera najdłuższego ciągu samych a i wyświetleniu go. Kod:
C/C++
#include <cstdlib>
#include <iostream>

using namespace std;

int main( int argc, char * argv[] )
{
    int x;
    bool checker = 1;
    string a, text;
    cin >> a;
    x = a.length();
    for( int k = 0; k < a.length(); k++ ) {
       
        for( int i = 0; i < x; i++ ) {
            text += "a";
        }
       
        if( a.find( text ) != std::string::npos ) {
            cout << text;
            checker = 0;
            break;
        } else {
            x--;
            text = "";
        }
    }
    if( checker == 1 ) {
        cout << "BRAK";
    }
    system( "pause" );
    return 0;
}
P-83237
pekfos
» 2013-05-18 20:08:48
Nie możesz po prostu operować na jednym
int
 (długość znalezionego ciągu), a potem wyświetlić n razy 'a'?
P-83244
DejaVu
» 2013-05-21 18:01:53
Nie używaj metody find - po prostu zliczaj ile znaków 'a' było pod rząd, zapamiętuj na bieżąco najlepszy wynik, a jak napotka inny znak to zeruj licznik (ale nie ten, z najlepszymi wynikami tylko ten pomocniczy).
P-83528
KrzychU5212
Temat założony przez niniejszego użytkownika
» 2013-05-22 17:47:00
Dziękuje za pomoc DejaVu zrobiłem tak jak mówiłeś i jest znacznie szybszy.
P-83604
« 1 »
  Strona 1 z 1