Palindrom, porównywanie wartosci w ciągu? Jak rozumienie to zadanie?

0

Hejka,

Dziś od magicznego ćwiczeniowca otrzymaliśmy zadanko, na które nie miałem czasu bo nie wiedziałem czy poprawnie je zrozumiałem.

V. [2 pkt.] Dana jest stuelementowa tablica zmiennych typu char. Wprowadź do niej dowolny ciąg znaków i sprawdź, czy zawiera ona ciągi znaków, które byłyby palindromami. Wypisz na konsolę tylko najkrótszy palindrom w całym ciągu. W zadaniu użyj wskaźników.

Nie będę zamieszczał wszystkich funkcji bo nie ma sensu.
Zadanko zrobiłem to na tej zasadzie, i nie wiem czy zostanie zaakceptowane, stąd moje pytanko do was.

 
#include<iostream>
using namespace std;
int len(char* cr)
{
 ... // Zwracam dlugosc ciagu char.
}
int isPalindrom(char* cr)
{
 ... // Sprawdzam palindrona i wyswietlam 0 (flase), 1 (true).
}
main()
{
   char **moja_tablica_ze_wskaznikami = {"ALA", "ALLA", "ALLLLA", "DABCCBAD"};  // pominalem to ze dziala ;) nie chce pisac tutaj wczesniejszego przypisania wartosci/adresu z innej tablicy, zalozmy ze to dziala.
   // lece teraz forem po wszystkim
for (int i = 0; i<=sizeof(moja_tablica_ze_wskaznikami );i++)
   {
    // Sprawdzam czy moja_tablica_ze_wskaznikami [i] jest palindormem.
        // jezeli jest to sprawdzam dlugosc...
        if ( tymczas > len(moja_tablica_ze_wskaznikami[i]))
         {
                  tymczas = liczba;
                  index = i;
         }
        // de buuguje wszystko

   }
}

Po wywyolaniu tego kodu, wyrzuca mi ze "ALLA" jest najkrotszym palindromem z sizem 4 etc. ale czy o to oby napewno chodzilo?
Zastanawiam sie nad tym bo tu jest napisany niby jeden ciag (tak rozumiem to zadanie z drugiej storny) i tam jakos sprawdzic palindrony w ciagu??? Jezeli o to by chodzilo to jak to logicznie udzwignac?

Pozdrawiam, M.



3

Ja rozumiem zadanie inaczej, w tablicy typu char[100] (np. {'c','+','d',...}) należy znaleźć najkrótszy podciąg, który jest palindromem. Wtedy zadanie jest banalne - każdy jednoelementowy pociąg jest jednoelementowym palindromem.

0

Zasadnicze pytanie - gdzie masz tę daną tablicę stuelementową typu char w swoim kodzie?

0

Coś chyba pokręciłeś zadanie, bo jedna litera jest palindromem i to byłby najkrótszy możliwy palindrom, a to czyni zadanie bezsensu.
Raczej masz znaleźć ten najdłuższy.
Poza tym ja rozumiem tak, że masz bardzo długi napis (100 znakowy) i w nim masz odnaleźć taki fragment napisu, który będzie palindromem (najkrótszym/najdłuższym).

0

Nie no nic nie pokręciłem taka jest treść zadania (copy/paste).
Więc skoro chodzi o tym że w jednym ciągu ma znaleźć to lece po porstu tym samym algorytmem co na palindroma i szukam jakiś wyjątków na najmniejszy / największy?

Tylko ze jak mam np ciąg:

aaddaaxdssddddax

To powinien znaleźć mi tutaj:

aaddaa
adda
dd
aa
dssd
ss
dddd
dd

Jak mogę po poiterować, użyć jakiegoś regexpa czy próbować lecieć 0,1 1,1 itp az napotka te same a poznie odpowiednio -1,+1 i sprawdzac dalej?

Pozdro! :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1