[SOLVED]Wyszukiwanie najdłuższej sekwencji w ciągu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
Hauleth
Wytworny Kaczor
Wytworny Kaczor
Posty: 382
Rejestracja: 18 sie 2008, 17:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86

[SOLVED]Wyszukiwanie najdłuższej sekwencji w ciągu

Post autor: Hauleth »

Mam taki kod, który ma znaleźć najdłuższy ciąg liter.

Kod: Zaznacz cały

ciag max( string s ) {
        ciag ret;
        ret.ile = 0;
        ret.rodzaj = ciemne;
        ciag tmp;
        tmp.ile = 0;
        tmp.rodzaj = ciemne;

        for( siter i = s.begin(); i < s.end(); i++ ) { // siter to typedef string::iterator
                if( type( *i ) == ret.rodzaj )
                        tmp.ile++;
                else {
                        if( tmp.ile > ret.ile || ( tmp.ile == ret.ile && tmp.rodzaj < ret.rodzaj ) ) {
                                ret.ile = tmp.ile;
                                ret.rodzaj = tmp.rodzaj;
                        }
                        tmp.rodzaj = type( *i ); // type() to funkcja określająca typ litery ( samodzielnie działa poprawnie )
                        tmp.ile = 1;
                }
        }

        return ret;
}

ciag to struktura zawierająca dane:
ile - ilość liter w szukanym ciągu
rodzaj - typ wyliczeniowy ( JASNE, CIEMNE, jasne, ciemne ).

Jasne to są samogłoski, a ciemne to spółgłoski. Wielkość liter ( JASNE, jasne ) oznacza wielkość liter w wyszukanej sekwencji.

Nie działa to jednak tak jak powinno. Jakieś propozycje?

Z góry dzięki.
pinochet
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 24 lut 2008, 15:28
Płeć: Mężczyzna
Wersja Ubuntu: 8.10

Odp: Wyszukiwanie najdłuższej sekwencji w ciągu

Post autor: pinochet »

Hauleth pisze:Mam taki kod, który ma znaleźć najdłuższy ciąg liter.

Kod: Zaznacz cały

ciag max( string s ) {
        ciag ret;
        ret.ile = 0;
        int tmp = 0;
        for( siter i = s.begin(); i < s.end(); i++ ){
                if( *i == ' ' || *i == '\n') {
                       tmp = 0;
                }else{
                       tmp ++;
                }
                if(tmp > ret.ile) ret.ile = tmp;
        }
        return ret;
}
Awatar użytkownika
Hauleth
Wytworny Kaczor
Wytworny Kaczor
Posty: 382
Rejestracja: 18 sie 2008, 17:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86

Odp: Wyszukiwanie najdłuższej sekwencji w ciągu

Post autor: Hauleth »

Już rozwiązałem, ale i tak dzięki.
Jeśli problem rozwiązany dodaj na początku tematu [SOLVED].

Biblioteka do C++ - Bust Lib: http://code.google.com/p/bust/
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 15 gości