Pereiti prie turinio

Rekomenduojami pranešimai

Tarkime turiu:

 

String tekstas;

tekstas = "kazkoks tekstas cia parasytas.";

tekstas = tekstas.replaceAll(" ", "");

 

//dabar tekstas lygu kazkokstekstasciaparasytas.

 

Kaip reikėtu rasti, kuris simbolis kartojasi mažiausiai ir kuris daugiausiai kartų?

Redagavo DJManas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tarkime turiu:

 

String tekstas;

tekstas = "kazkoks tekstas cia parasytas.";

tekstas = tekstas.replaceAll(" ", "");

 

//dabar tekstas lygu kazkokstekstasciaparasytas.

 

Kaip reikėtu rasti, kuris simbolis kartojasi mažiausiai ir kuris daugiausiai kartų?

 

Jei gerai supratau, tai pasidarai dictionary, tada eini per kiekvieną String elementą ir jei tam žodyne yra tas elementas, tai reikšmę darai +1, jei ne, tiesiog 1 :)

Java nelabai moku, bet Python atrodytų taip:

dic = {}
string= 'tekstastekstasirdarteksto'
for i in string:
   if i in dic:
       dic[i] += 1
   else:
       dic[i] = 1

 

Manau logiką pagausi (žinoma, jei gerai supratau ko reikia).

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na žodyno darytis negalima nebent jame surašysi visus įmanomus simbolius, o tai būtu ne taip jau ir lengva.

 

Kai pasidariau pagal rastus pavyzdžius kodas atrodo taip:

 

	    char [] cBuf=new char[str.length()];
    str.getChars(0,cBuf.length,cBuf,0);
    for (int i=0; i<cBuf.length; i++)
      intArr[(int)cBuf[i]]+=(cBuf[i] != 0) ? 1 : 0;
    for (int i=0; i<intArr.length; i++){ maxPos=(intArr[i] > intArr[maxPos]) ? i : maxPos;}
    System.out.println("Labiausiai pasikartojantis symbolis yra: " + "\'" +
                       (char)maxPos + "\'" + "(" + intArr[maxPos] + " kartus" + ")");

    for (int i=0; i<intArr.length; i++){ minPos=(intArr[i] == 1) ? i : minPos;}
    System.out.println("Mažiausiai pasikartojantis symbolis (-iai) yra: " + "\'" +
                       (char)minPos + "\'" + "(" + intArr[minPos] + " kartus" + ")\n");

 

Bet čia pati sudėtingiausia forma ;) Galima kur kas lengviau tai padaryti tačiau kodas užims daug daugiau vietos.

Redagavo DJManas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na ji man nepasirodė labai lengva, kai simbolio nenurodai kokį skaičiuoti ir jokio sąrašo nenaudoji (nebent nori susirašyti visus įmanomus simbolius) tiesiog iš duoto teksto skaičiuoji kokio simbolio yra daugiausiai ir kokio mažiausiai, o tekstas nebūtinai susideda tik iš raidžių ir skaičių.

Redagavo DJManas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na žodyno darytis negalima nebent jame surašysi visus įmanomus simbolius, o tai būtu ne taip jau ir lengva.

 

Kai pasidariau pagal rastus pavyzdžius kodas atrodo taip:

 

	    char [] cBuf=new char[str.length()];
    str.getChars(0,cBuf.length,cBuf,0);
    for (int i=0; i<cBuf.length; i++)
      intArr[(int)cBuf[i]]+=(cBuf[i] != 0) ? 1 : 0;
    for (int i=0; i<intArr.length; i++){ maxPos=(intArr[i] > intArr[maxPos]) ? i : maxPos;}
    System.out.println("Labiausiai pasikartojantis symbolis yra: " + "\'" +
                       (char)maxPos + "\'" + "(" + intArr[maxPos] + " kartus" + ")");

    for (int i=0; i<intArr.length; i++){ minPos=(intArr[i] == 1) ? i : minPos;}
    System.out.println("Mažiausiai pasikartojantis symbolis (-iai) yra: " + "\'" +
                       (char)minPos + "\'" + "(" + intArr[minPos] + " kartus" + ")\n");

 

Bet čia pati sudėtingiausia forma ;) Galima kur kas lengviau tai padaryti tačiau kodas užims daug daugiau vietos.

O tai negalima javoj į žodyną pridėti dinamiškai simbolių? Tarkim turi tekstą „abakas“, tai žodyną padarytų tik su raktais a, b, k, s? :)

Redagavo Silke
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na ji man nepasirodė labai lengva, kai simbolio nenurodai kokį skaičiuoti ir jokio sąrašo nenaudoji (nebent nori susirašyti visus įmanomus simbolius) tiesiog iš duoto teksto skaičiuoji kokio simbolio yra daugiausiai ir kokio mažiausiai, o tekstas nebūtinai susideda tik iš raidžių ir skaičių.

Nepamiršk dar ir tai, kad keli simboliai gali vienodai pasikartoti.

 

O tai negalima javoj į žodyną pridėti dinamiškai simbolių? Tarkim turi tekstą „abakas“, tai žodyną padarytų tik su raktais a, b, k, s? :)

 

Aišku, kad galima. Yra masyvas, kuris saugo tik unikalius simbolius.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...