@wolfram11: hej. mam tablicę charów z różnymi nazwami zwierząt: pies, kot itd. chciałbym wyświetlić tylko te w których w nazwach jest więcej niż jedna taka sama litera. nie mam pomysłu na ifa. ktoś może podpowie? #java #naukaprogramowania
@wolfram11: Robisz to w pętli porównując długość łańcuchów znaków bez danej litery, którą akurat sprawdzasz. Jeżeli dla danego słowa chociaż raz wystąpi przypadek kiedy długość słowa bez danej litery zmienia się o > 1 to wtedy dodajesz słowo do listy wyników. Tak będzie zdecydowanie najszybciej i najprościej.
@wolfram11: trochę trzeba to skomplikować dla każdego słowa robisz pomocniczy słownik bierzesz literę, sprawdzasz czy występuje w pomocniczej tablicy jeżeli nie występuje, dopisujesz jeżeli występujesz ustawiasz sobie flagę jakąś dla tego słowa na true flaga defaultowo ma wartość false na koniec masz pary słowo - flaga wyświetlasz tylko te słowa gdzie flaga jest ustawiona na true
@wolfram11 W pythonie bym zrobił seta ze stringa i porównywał długość stringa i długość seta. W javie też są sety, ale na pewno można to zrobić wydajniej.
@TwojStaryToKorniszon: @inkluzja_ultymatywna: Nawet nie trzeba robić słownika. Set.add zwraca boolean z informacją, czy wartość została dodana do seta (czyli czy jej tam jeszcze nie było)
@labadzak: No tak, dlatego zaproponowałem rozwiązanie bez słownika, w Javie iterować po wszystkich literach też można out of the box że tak powiem, w ten sposób: for(c = 'A'; c <= 'Z'; ++c)
@wolfram11: Dwie pętle, jedna zagnieżdżona w drugiej. Pseudokod:
for (i = 0) do (i < długość tablicy charów - 1) for (j = i+1) do (j < długość tablicy charów) jeśli (tablicaCharów[i] == tablicaCharów[j]) przerwij, znaleziono duplikat
No tak, dlatego zaproponowałem rozwiązanie bez słownika, w Javie iterować po wszystkich literach też można out of the box że tak powiem, w ten sposób: for(c = 'A'; c <= 'Z'; ++c)
EDIT: tu masz przykład: https://stackoverflow.com/questions/14092682/how-do-i-check-if-a-string-contains-the-same-letter-more-than-once
trochę trzeba to skomplikować
dla każdego słowa robisz pomocniczy słownik
bierzesz literę, sprawdzasz czy występuje w pomocniczej tablicy
jeżeli nie występuje, dopisujesz
jeżeli występujesz ustawiasz sobie flagę jakąś dla tego słowa na true
flaga defaultowo ma wartość false
na koniec masz pary słowo - flaga
wyświetlasz tylko te słowa gdzie flaga jest ustawiona na true
W pythonie bym zrobił seta ze stringa i porównywał długość stringa i długość seta. W javie też są sety, ale na pewno można to zrobić wydajniej.
w tej sytuacji to jeszcze prościej
Pseudokod:
for (i = 0) do (i < długość tablicy charów - 1)
for (j = i+1) do (j < długość tablicy charów)
jeśli (tablicaCharów[i] == tablicaCharów[j]) przerwij, znaleziono duplikat
@inkluzja_ultymatywna: