[Optymalizacja] Jak szybko znaleźć najdłuższy ciąg zbudowany z litery 'a'
Ostatnio zmodyfikowano 2013-05-22 17:47
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: #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; }
|
|
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'? |
|
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). |
|
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. |
|
« 1 » |