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

323

    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. Me työeläkeläiset äänestämme SDP:tä

      SDP on luonut koko työeläkejärjestelmän, jonka hedelmistä saamme nyt nauttia. Kansaneläkelaitos on Maalaisliiton tekele,
      Maailman menoa
      179
      5046
    2. Eikö tunnukin kamalalta, kun en

      anna periksi vaikka parhaasi olet tehnyt antaaksesi täystyrmäyksen? Ja kyllähän minä monta iskua olen saanut ja maannut
      Ikävä
      81
      3626
    3. SDP on selvästi paras valinta äänestyskopissa

      Puolueella on arvomaailma kohdallaan, sillä on hyvä CV itsenäisen Suomen historiassa vastuunkantajana ja hyvinvointivalt
      Maailman menoa
      40
      2628
    4. SDP:n selitykset ontuu pahasti - "On käsitelty heti, mutta kukaan ei tiedä"

      Kokoomuslaiset pistää taas demareita nippuun. Tuppuraisen mukaan mukaan SDP:n useat ahdistelutapaukset on käsitelty het
      Maailman menoa
      41
      2286
    5. Kenen juontajan pitäisi voittaa tänään Kultainen Venla? Ehdolla Pimiä, Holma ja Vaaherkumpu

      Kultainen Venla gaalassa jaetaan tänään tv-alan palkintoja. Yksi suosituimmista kategorioista on Juontaja. Vappu Pimiä
      Suomalaiset julkkikset
      99
      2198
    6. Oletko nainen turhautunut, kun en tule juttelemaan siellä?

      Haluaisin tottakai tulla. Älä käsitä väärin. Ehkä ensi kerralla?
      Ikävä
      29
      2077
    7. Antti Lindtman: "Ainahan kaikenlaisia huhuja liikkuu"

      Näin hän siis vastaa SDP:n häirintäkohuun, väistelee vastuutaan Juttuhan on niin, että Lindtman ja Tuppurainen on tasan
      Maailman menoa
      73
      2074
    8. Mitä saa sanoa?

      Palstalla tänään sanottua: ” Kaikki riippuu siitä, miten asian esittää,” Onko siis niin, että saa muita pomottaa ja
      80 plus
      88
      2023
    9. Onko olemassa miehiä, jotka haluavat yhteydenpitoa?

      Silloin tällöin viestiä, puntarointeja arkielämästä, ikäänkuin pientä viihdettä ilman sen kummallisempaa. Tällaista miet
      Sinkut
      21
      1546
    10. Mitä Trump itse pitäisi siitä, jos häntä solvattaisiin

      Kuten hän solvasi muita mm. Macronia? Kyllä ei huumori enää kukkisi. White house on nykyään pelkkä vitsi vain, ei mitään
      Maailman menoa
      114
      1458
    Aihe