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

338

    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. Perussuomalaiset kirjoittaa vain positiivisista uutisista

      Ei tarvitse palstaa paljon seurata, kun sen huomaa. Joka ainoa positiivinen uutinen Suomen taloudesta tai ylipäätään, ni
      Maailman menoa
      120
      7081
    2. Kuka on UMK-suosikkisi? UMK26 paljastuksia lauantai 28.2.

      UMK26 tänä lauantaina! UMK26 tulee suorana Tampereelta ja nyt selviää, kuka pääsee edustamaan Suomea Euroviisuihin. M
      Euroviisut
      121
      4855
    3. L/over ja Jani Volanen! Minkä arvosanan 4-10 annat roolityöstä?

      Psykologinen trilleri L/over - ikuisesti minun on koukuttanut tv-katsojat ruudun ääreen. Kun Roosa (Krista Kosonen) tapa
      Tv-sarjat
      63
      4126
    4. TTK:n jättänyt Vappu Pimiä rehellisenä MasterChef-kuvauksista: "Höh..."

      Vappu Pimiä on uusi MasterChef Suomi -tuomari. Viime vuonna Tanssii Tähtien Kanssa jäi taakse, ja nyt vuorossa on uusi a
      Suomalaiset julkkikset
      14
      3424
    5. Natomaa hyökkäsi Iraniin

      Näemme nyt tällä hetkellä Natomaan nimeltä Yhdysvallat, joka toimii aika pitkälti perinteisen kansainvälisen lain ulkopu
      NATO
      708
      2181
    6. Trump aloitti III maailmansodan tänään.

      Narsisti ja mielipuoli Trump pitäisi saada pois, miten se onnistuisi parhaiten?
      Maailman menoa
      252
      1581
    7. Miksi et nainen halua

      minua, kuten minä sinua?
      Ikävä
      67
      1415
    8. Rakas tiedät, että toivoisin

      Kuulevani sinusta. Tiedät, että viestisi tekisi minut ihan onnelliseksi. Että äänesi kuuleminen saisi minut leijumaan ja
      Ikävä
      58
      1398
    9. Osaako kukaan sanoa?

      Mikä on syy siihen, että apulaisidiootti yrittää kaikin keinoin haitata kaikkea yrittämistä Ähtärissä? Nyttkin pilkkaa j
      Ähtäri
      56
      1354
    10. Mistä se kertoo

      Näin miehen pitkästä aikaa. Samantien iski sellainen paineen tunne rintaan, sitä ei ole ollut vuosiin. Ja nyt olen siitä
      Ikävä
      22
      1216
    Aihe