• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja sprawdzająca w ciągu znaków ilość takich samych liter z rzędu

Object Storage Arubacloud
0 głosów
774 wizyt
pytanie zadane 17 listopada 2018 w JavaScript przez Luckyluck87 Użytkownik (660 p.)

Witam serdecznie,

Potrzebuje stworzyć funkcję w JavaScript która pobiera ciąg znaków (np. taki "TTRRUUUUREEETER") i sprawdza w nim czy któraś z liter występuje obok siebie 3 lub więcej razy. Jeżeli tak to usuwa ten rząd liter , po czy dalej sprawdza i tak do skutku aż nie będzie obok siebie więcej niż dwa takie same znaki. Czyli żeby funkcja zwróciła to co zostało po usunięciu wszystkich grup liter.

Czyli żeby, wg powyższego przykładowego Stringa:

Po 1 sprawdzeniu zostało: "TTRRRTER"

Po 2 sprawdzeniu: "TTTER"

Na końcu funkcja zwróci: "ER"

Napisałem coś takiego:

function letters(string){

    var unique = '';

    for(var i=0; i<string.length; i++) {
 
        if(unique.indexOf(string[i])==-1) {

            unique += string[i];
        }
    }
    return unique;
}
console.log(letters('TTRRUUUUREEETER'));

Ale niestety ta funkcja redukuje wszystkie zduplikowane litery do jednej , zamiast usuwać ich rzędy.

Będę bardzo wdzięczny za pomoc, pozdrawiam :)

1 odpowiedź

0 głosów
odpowiedź 17 listopada 2018 przez sefir Dyskutant (8,560 p.)

Tu masz kodzik co zamienia "TTRRRTER" na "TTTER". Dalej kombinuj, jest z górki :D

function countOfTheSameLetters (string, position) {
  var count = 1;
  var letter = string[position];
  for (var i = position + 1;i < string.length; i++) {
    if (string[i] === letter) {
      count++;
    } else return count;
  }
  return count;
}

function letters (string) {
  var unique = '';
  var count;
  var i = 0;
  do {
    count = countOfTheSameLetters(string, i);
    if (count < 3) {
      unique += string[i];
    } else {
      i += count - 1;
    }
    i++;
  } while (i < string.length);

  return unique;
}

 

komentarz 17 listopada 2018 przez Luckyluck87 Użytkownik (660 p.)
Super, dziękuje bardzo za odpowiedź :)

Przeanalizuję kod i będę kombinował dalej - Powinienem sobie poradzić :D

Pozdrawiam!

Podobne pytania

0 głosów
1 odpowiedź 2,097 wizyt
pytanie zadane 8 lipca 2018 w C i C++ przez Kamil(Ten miły) Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 2,047 wizyt
pytanie zadane 22 stycznia 2017 w C i C++ przez spicedagger Użytkownik (530 p.)
0 głosów
2 odpowiedzi 1,330 wizyt
pytanie zadane 4 listopada 2017 w JavaScript przez Wojciech Tuszkiewicz Użytkownik (500 p.)

92,536 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...