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

[JS] Konwersja stringa na tablice / brakujące litery

Hosting forpsi easy 1 pln
0 głosów
1,837 wizyt
pytanie zadane 10 września 2019 w JavaScript przez 42savage Bywalec (2,630 p.)
edycja 10 września 2019 przez 42savage

 

Ok, a więc mam zadanie, żeby posortować alfabetycznie i usunąć zduplikowane literki, a następnie porównać długości obu stringów i zwrócić, ten o większej długości.

Robie to w taki sposób, że najpierw zamieniam stringa na tablice a potem sortuje i koniec końców z powrotem zamieniam na stringa.

Problem jest taki, że 

    [...new Set(arr2)]

ucina mi za dużo literek, nawet jeżeli nie są zduplikowane

var s1= "loopingisfunbutdangerous"
var s2 = "essdangerousthancoding"

function longest(s1, s2) {
    var arr1 = s1.split('').sort();
    var arr2 = s2.split('').sort();
    let result1 = [...new Set(arr1)].join('');
    let result2 = [...new Set(arr2)].join('');
    if(result1.length > result2.length){
        console.log(result1)
        return result1;
    }
    else{
        console.log(result2)
        return result2;
    }
}

longest(s1, s2)

przykładowe s1 i s2

aretheyhere, yestheyarehere = powinny być: aehrsty, zjadło "s"

1
komentarz 10 września 2019 przez Tomek Sochacki Ekspert (227,530 p.)
jeśli już chcesz robić takie operacje to kompletnie bez sensu jest sortowanie na wstępie obu stringów - na starcie interesuje Cię tylko jakie mają unikalne znaki i który jest dłuższy i dopiero ten jeden posortuj, inaczej bez sensu poświęcisz czas na zbędne sortowanie. Na kom. nie lubię pisac kodu więc najwyżej jak nikt nie pomoże to jak będę przy kompie zerknę na kod.
komentarz 11 września 2019 przez 42savage Bywalec (2,630 p.)

Mistrzu,  zajrzysz? laugh
A co do operacji rzeczywiście nie przemyślałem tego do końca.

1 odpowiedź

0 głosów
odpowiedź 11 września 2019 przez niezalogowany
let s1= "loopingisfunbutdangerous"
let s2 = "essdangerousthancoding"
let arr1 = s1.split('');
let arr2 = s2.split('');
let result1 = Array.from(new Set(arr1));
let result2 = Array.from(new Set(arr2));
if(result1.length > result2.length){
console.log(result1.sort());
} else {
console.log(result2.sort());
}      

 

komentarz 11 września 2019 przez danielb Bywalec (2,520 p.)
Samego mnie zainteresowało, to zagadnienie, podoba mi się, ten twój sposób podejścia do tematu, krótko i zwięzłe :-)
komentarz 11 września 2019 przez 42savage Bywalec (2,630 p.)

Czy ja wiem czy to krótko i zwięźle coś dało. Dalej zjada literki, w dodatku nie zwraca stringa, tylko loguje w konsoli tablice.

komentarz 11 września 2019 przez niezalogowany
Zwracanie możesz sobie dorobić sam, ja nie będę za Ciebie pisał gotowca.

Jakie literki Ci zjada bo mi żadnych nie zjadło.
komentarz 11 września 2019 przez 42savage Bywalec (2,630 p.)
edycja 11 września 2019 przez 42savage

Expected: 'abcdefghilnoprstu', instead got: 'abdefgilnoprstu'

Expected: 'acefghilmnoprstuy', instead got: 'acefhinoprstu'

 

Array.from(new Set(arr1)); to to samo co moje [...new Set(arr1)];


Nie wiem co to za zmiana

komentarz 11 września 2019 przez niezalogowany
Kod działa prawidłowo, sprawdź czy testy dobrze napisałeś, w dwóch expected masz literkę 'c' a tylko w jednym stringu występuje.

A co do uwagi dotyczącej zmiany to przemilczę.

Podobne pytania

0 głosów
1 odpowiedź 197 wizyt
pytanie zadane 15 lutego 2021 w C i C++ przez Rainbow99 Początkujący (430 p.)
0 głosów
2 odpowiedzi 335 wizyt
0 głosów
0 odpowiedzi 239 wizyt

92,092 zapytań

140,751 odpowiedzi

317,718 komentarzy

61,409 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 0p. - shogunalke
  2. 0p. - Sambor1313
  3. 0p. - Whistleroosh
  4. 0p. - Hubert Chęciński
  5. 0p. - the Bielsky
  6. 0p. - s. Dorota Kowalewska
  7. 0p. - Mikbac
  8. 0p. - Poftorek
  9. 0p. - KreciX h
  10. 0p. - Adrian Wieprzkowicz
  11. 0p. - TheLukaszNs
  12. 0p. - nidomika
  13. 0p. - Dewidos
  14. 0p. - mjavor
  15. 0p. - Fiji404
Szczegóły i pełne wyniki

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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia w koszyku, uzyskując rabat aż -50% (jeszcze tylko dziś 30.11 z okazji Black Week, a potem będzie to 30%) na bilety w wersji "Standard"! Więcej informacji na temat akademii znajdziecie tutaj. Dziękujemy Sekurakowi za tak fajną zniżkę dla 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 15% 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!

...