Sorotwanie

0

Siemanko , ostatnio zastanawiałem jak można by zrobić w Pythonie algorytm sprawdzający czy w tablicy jednowymiarowej połowy tablic jednowymiarowej
czytane od początku i od końca dają identyczny wynik.

jestem bardzo początkujący programistą więc prosiłbym o jakieś poprowadzenie mnie za rękę po tym algorytmie

1

I tak sobie siedziałeś ... myślałeś i ot! Taki nietypowy problem cię naszedł. Doprawdy imponujące i zastanawiające zarazem. A cóż Cię natchnęło o myślicielu do tak głębokich rozmyślań?
Sprawa prosta :


iPocz = 0;
iKon = TabSize - 1

while ( ipocz < iKon ) 
  if Tab[iPocz] <> Tab[iKon] then ( NIE są)
  iPocz++
  iKon--

endwhile

( są)

Pozdrów nauczyciela z informatyki.

0

Przeglądałem sobie zadania z różnych blogów i to jedno zapadło mi w pamięć dzięki bardzo za rozwiązanie teraz porozważam z tą odpowiedzią

0

Tylko, że w Pytonie to mało efektywna metoda. Jak by zależało na optymalizacji szybkości to należałoby gotowymi funkcjami: podzielić na pół, odwrócić kolejność w 2 połówce a porem zrobić xora obu ( w jakiś matematycznych modułach na 100% znajdzie się taka funkcja co to robi ... na koniec jakiś arrayUnique i jeśli zostanie zwrócony pusty wynik to znaczy, że (było ok)

0

Na razie coś takiego wymyśliłem. To co u góry napisałeś jakoś do mnie nie przemawia , a to co ja napisałem tutaj nie działa dla wszystkich przypadków.

0

Albo bardzo niefortunnie zredagowałeś "treść zadania" albo to co pokazałeś na obrazku ma się do tego nijak albo jeszcze coś innego ...

0
a = [1,2,2,1,5,4,5,5,4]
n = len(a)
a[:n//2] == a[n//2-1::-1] and a[int(-n+0.5)//2:] == a[:int(-n+0.5)//2-1:-1]

W Pythonie 2 może być odrobinkę łatwiej (inaczej działa dzielenie całkowitoliczbowe).

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