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

294

    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. Mitä yhteistä on sulla ja kaivatulla?

      Onko teillä samantyyppinen olemus tai luonne? Vai muistuttaako vartalonne toisiaan? Tai kasvot? Entä pukeutuminen? Onko
      Ikävä
      99
      1546
    2. Kerran oltiin mekin kahdestaan

      Saanko sanoa, että minua kyllä vähän huvitti jälkeenpäin? Olit kuin vapiseva jänis ketun vieressä valmis loikkimaan paik
      Ikävä
      13
      1216
    3. Ozzy Osbourne on kuollut

      Kevyet mullat ja R.I.P. Ei soi enää Paranoid.
      Maailman menoa
      230
      1200
    4. Persut yritti estää somalinaista väittelemästä lääketieteen tohtoriksi

      Yrittivät saada hänet lähihoitajakouluun, vaikka pärjäsi hyvin koulussa. Nyt hän on yliopistossa väitellyt lääketieteen
      Maailman menoa
      267
      1068
    5. Oikeasti, voitais mennä kahville

      ja jutella niin kuin normi-ihmiset. Kyllä toivon sitä. En pelkää kohdata enkä istua sun kanssa samassa pöydässä. Miten o
      Ikävä
      81
      989
    6. Naiset, naiset

      Älkää antako painonne nousta. Naisella ylipaino ei ole hyvä.💝
      Ikävä
      141
      970
    7. Jos nainen harrastaa seksiä

      Useiden kanssa, miten se eroaa miesten mielestä siitä, jos miehellä on ollut useita s kumppaneita? Oletan että kaikki mi
      Ikävä
      179
      963
    8. Pihlaja-puulle

      Illat on mulle pahimpia. En tiiä miks se olis vaan parasta yöstä toiseen nukkua sun kanssa ja herätä sun kasvoihin. Jos
      Ikävä
      15
      949
    9. No mitä nyt

      Ollaanko vaiko eikö olla? Miehelle.
      Ikävä
      74
      819
    10. Yritin keväällä unohtaa sinut nainen

      mutta siinä kävi niin, että ikävä tuli korkoineen takaisin. Niin että mikä taikavoima sinulla on minuun, sitä joutuu mie
      Ikävä
      33
      812
    Aihe