Wpis z mikrobloga

#programowanie
Czy jest jakis błyskotliwy sposób, który pozwala sprawdzić, czy w tablicy jest taki zbiór komórek, który posiada taką samą wartość np. 3 razy z rzędu? np mam tablicę = {1,2,2,2,3,4,1,5,2,2,2} i mam tu dwa zbiory trzech następujących po sobie dwójek. Jak mogę to sprawdzić?
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@htfhere: Hmm... po prostu przejdź po tablicy, jak trafisz na pierwszą ze zbioru sprawdzasz kolejne pozycje, po czym jeżeli jest szukanym zbiorem zapisz pozycję po czym zacznij od następnego elementu.
Przy czym możesz zrobić metodę która bierze jako parametr szukany zbiór, wtedy na sprawdzeniu kolejnych elementów rzucach pętlę porównującą elementy tablicy szukanego zbioru z elementami w zbiorze w którym szukasz (break jeżeli trafi jest niezgodność elementów - w wewnętrzej pętli)
  • Odpowiedz
@htfhere: Zrób jakąś kolekcję, np. mapę (c++ map, java hashmap, c# dictionary), która przechowa Ci jako key liczbę, a jako value ilość powtórzeń, a następnie pętlę przez Twoją tablicę i za każdą cyfrą niech doda pod taki klucz +1 do wartości, później po prostu robisz pętlę przez mapę key/value i gotowe.
  • Odpowiedz
@htfhere: Użyj regexpa, przykład w JS:

/([0-9]+,)\1{2,}/.test(arr.join(',') + ',')
Jeśli tablica ma zawierać tylko cyfry od 0 do 9 to wystarczy:

/([0-9])\1{2,}/.test(arr.join(''))
arr to zmienna przechowująca tablicę.
  • Odpowiedz