C sharpilla kaikki merkkijonot

rekursiohankaluus

Miten tehdään rekursio, joka tulostaa kaikki annettua pituutta pienemmät merkkijonot, joiden merkit ovat a, b,...,z? Siis vaikkapa syötteellä 4 tulostus alkaa ja loppuu:

a
b
c
...
z
aa
ab
...
zz
aaa
aab
....
zzzy
zzzz

11

307

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • mitämeinasit

      Siis onko tarkoitus tehdä funktio, joka palauttaa merkkijonon, jos se täyttää em. ehdot?

      • rekursiohankaluus

        Haluaisin opetella tekemään funktion, joka tulostaisi merkkijonot siten, että se kävisi tietynpituiset merkkijonot lävitse ja kun kaikki on käyty, niin etsisi yhtä pidempiä merkkijonoja.


      • erotin
        rekursiohankaluus kirjoitti:

        Haluaisin opetella tekemään funktion, joka tulostaisi merkkijonot siten, että se kävisi tietynpituiset merkkijonot lävitse ja kun kaikki on käyty, niin etsisi yhtä pidempiä merkkijonoja.

        Eikös kaikki merkkijonot ole yhtä pidempiä? Millä tavalla olet erottanut merkkijonot toisistaan?


      • rekursiohankaluus

        Yritän tehdä Arraylistin avulla taulukkoon kunkin kirjaimen ja sitten generoida siitä merkkijonon. Haluaisin siis käydä läpi ensin kaikki yhden kirjaimen merkkijonot aakkosjärjestyksessä, sitten kahden merkin merkkijonot, sitten kolmen merkin merkkijonot jne.


      • esimerkkinä
        rekursiohankaluus kirjoitti:

        Yritän tehdä Arraylistin avulla taulukkoon kunkin kirjaimen ja sitten generoida siitä merkkijonon. Haluaisin siis käydä läpi ensin kaikki yhden kirjaimen merkkijonot aakkosjärjestyksessä, sitten kahden merkin merkkijonot, sitten kolmen merkin merkkijonot jne.

        Jos on merkkijonot "st1, esso, teboil, neste, abc", niin mitä pitäisi pukata stdoutiin?


      • rekursiohankaluus

        Siis mä ajattelin, että koska stringit on muuttumattomia, niin en voi tehdä asioita suoraan stringeillä. Siksi ajattelin käsitellä kirjaimia arraylistissä. Esimerkiksi voin alustaa kirjaimen:

        ArrayList myarray = new ArrayList();
        myarray.Add('a');

        ja vaihtaa:

        public static ArrayList change(ArrayList A, int i)
        {
        //Console.WriteLine(A[i]);
        if ((char) A[i]=='z') {
        A[i] = 'a';
        }
        else
        {
        char merkki = (char)A[i];
        A[i] = (char)((int)merkki 1);
        }
        return A;
        }

        Mutta tähän loppui taidot. Jos haluaisin vaikka merkkijonosta aaa merkkijonon aab, niin mulla olisi ensiksi listassa
        myarray[0]=a
        myarray[1]=a
        myarray[2]=a
        ja voisin kutsua myarray.change(myarray,2), jolloin arrayna olisi
        myarray[0]=a
        myarray[1]=a
        myarray[2]=b


      • logiikka
        rekursiohankaluus kirjoitti:

        Siis mä ajattelin, että koska stringit on muuttumattomia, niin en voi tehdä asioita suoraan stringeillä. Siksi ajattelin käsitellä kirjaimia arraylistissä. Esimerkiksi voin alustaa kirjaimen:

        ArrayList myarray = new ArrayList();
        myarray.Add('a');

        ja vaihtaa:

        public static ArrayList change(ArrayList A, int i)
        {
        //Console.WriteLine(A[i]);
        if ((char) A[i]=='z') {
        A[i] = 'a';
        }
        else
        {
        char merkki = (char)A[i];
        A[i] = (char)((int)merkki 1);
        }
        return A;
        }

        Mutta tähän loppui taidot. Jos haluaisin vaikka merkkijonosta aaa merkkijonon aab, niin mulla olisi ensiksi listassa
        myarray[0]=a
        myarray[1]=a
        myarray[2]=a
        ja voisin kutsua myarray.change(myarray,2), jolloin arrayna olisi
        myarray[0]=a
        myarray[1]=a
        myarray[2]=b

        Ei nyt ihan aukea mitä ajat takaa. Jos merkkijono on "st1" ja haluat merkkijonosta "abc", niin miten se tapahtuisi?


    • Turbo-Urpo1

      Tälläisen ( abc.c ) olen joskus haalinut verkosta muistiinpanoihin mukaan, Tämä käy kaikki merkkijonon varitaatiot läpi, ja nopeasti käykin.
      https://s25.postimg.cc/dhlvcuten/abc.c.png

      Kieli, ei ole C# vaan pelkkä C.

      • Turbo-Urpo1

        Tuo kuva on tästä LMDE 3 Cinnamon 64-bit työpöytäympäristöstä. Menee tosi kauan ennen kuin ikunan kehykset ja otsakepalkit, saa vaihdettua Win XP käyttämiin.


      • Turbo-Urpo1
        Turbo-Urpo1 kirjoitti:

        Tuo kuva on tästä LMDE 3 Cinnamon 64-bit työpöytäympäristöstä. Menee tosi kauan ennen kuin ikunan kehykset ja otsakepalkit, saa vaihdettua Win XP käyttämiin.

        Ja nyt lähti tuo LMDE 3 "Cindy" Cinnamon 64-bit tästä koneesta. Taikoo ihme jumeja sattuman varaisesti, vai virta-nappula auttaa. Paska mikä paska, ei toimi, eikä saa edes selvää mikä prosesi sen tekee, kun ei reakoi yhtään mihinkään, viittä vaille ettei tarvitse mennä iroittamaan sulake eteisessä olevasta sulaketaulusta.

        SE SIITÄ Cindystä


      • Turbo-Urpo1
        Turbo-Urpo1 kirjoitti:

        Tuo kuva on tästä LMDE 3 Cinnamon 64-bit työpöytäympäristöstä. Menee tosi kauan ennen kuin ikunan kehykset ja otsakepalkit, saa vaihdettua Win XP käyttämiin.

        Joo, meinashan tuo mennä muutenkin jo viihteen puolelle, kun alistin itseni kaikelle roskapostauksille. Mutta, mutta tekis mieli selvittää kuinka vähillä merkeillä Python tuosta samasta selviää. Ehkä tuo onnistuu myös Linux Shell komentoputkena, no katotaan nyt riittääkö intoa.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Sannan kirja USA:n bestseller!

      "Congratulations to Sanna Marin's HOPE IN ACTION, officially a USA TODAY bestseller!" Kertoo Scribner. Mitäs persut tä
      Maailman menoa
      145
      11302
    2. Oikeistolainen luki Med mod att leda : en biografi

      ...ei tykänny Sanna Marinista
      Maailman menoa
      27
      8063
    3. Metsäalan rikolliset

      Jokohan alkaa vähitellen kaatua kulissit näillä ihmiskauppaa harjoittavilla firmoilla.
      Sotkamo
      55
      5828
    4. Ruotsalaistoimittaja: "Sanna Marinin saunominen saa minut häpeämään"

      Sanna Marinin kirja saa täyslaidallisen ruotsalaislehti Expressenissä perjantaina julkaistussa kolumnissa.....voi itku..
      Maailman menoa
      158
      4503
    5. Suomen kaksikielisyys - täyttä huuhaata

      Eivätkö muuten yksilöt pysty arvioimaan mitä kieliä he tarvitsevat? Ulkomaalaiselle osaajalle riittää Suomessa kielitai
      Maailman menoa
      31
      4296
    6. Työeläkeloisinta 27,5 mrd. per vuosi

      Tuo kaikki on pois palkansaajien ostovoimasta. Ja sitten puupäät ihmettelee miksei Suomen talous kasva. No eihän se kas
      Maailman menoa
      81
      4152
    7. Missä vaiheessa

      Päätit luovuttaa suhteeni?
      Ikävä
      84
      3448
    8. Juuri muiston ne

      Rakastuneet katseesi. Huh
      Ikävä
      80
      3196
    9. Miten paljon

      Olet halunnut mun kanssa?
      Ikävä
      47
      1679
    10. Hyvää yötä

      Joka päivä ajatuksissani, aarre. ❤️
      Ikävä
      39
      1582
    Aihe