Experimentalia

Appunti raminghi

Golf Programming: Anagrammi

with 6 comments

Rientriamo dopo le ferie con un’altra sfida classica, giusto per toglierci di dosso eventuale ruggine. Al solito riporto le regole per chi cominciasse adesso a seguire questa pseudo rubrica.

Le Regole

Ormai le regole dovrebbero essere familiari, le riporto per scrupolo:

  1. Scrivere un programma, il più breve possibile, che risolva il problema enunciato prima e riportato meglio qui sotto;
  2. per ogni linguaggio utilizzato è considerato vincitore il programma scritto usando meno caratteri;
  3. l’efficienza dell’algoritmo non è un fattore fondamentale ma il programma deve terminare senza errori;
  4. si può optare, se più concisa, per una funzione, piuttosto che un programma intero;
  5. ovviamente non di vince niente se non la soddisfazione di aver accettato una sfida ed averla vinta.

L’algoritmo

La funzione di questo mese prende in input due stringhe e stampa vero se una delle due è anagramma dell’altra o falso in caso contrario (ovviamente sono consentite anche, per i linguaggi che lo permettono, 0 ed 1 o 0 e ~0).

Al solito posterò la mia soluzione come commento alla fine della settimana entrante, per dare il tempo a chi vuole partecipare di scatenare la propria fantasia.

Written by Eineki

agosto 30, 2009 a 19:32 pm

Pubblicato su golf

6 Risposte

Subscribe to comments with RSS.

  1. ecco, in python🙂

    import sys

    a, b = sys.argv[1:]

    if sorted(list(a)) == sorted(list(b)):
    print ‘le due stringhe sono anagrammi’

    su dpaste -> http://dpaste.com/87444/

    funziona via terminale passandogli 2 argomenti, stringa 1 e stringa 2:

    python anagrammi.py patrick prova

    patrick

    agosto 30, 2009 at 21:02 pm

  2. Prendendo spunto dalla versione di patrick ecco la mia versione in Ruby

    p ARGV[0].scan(/./).sort == ARGV[1].scan(/./).sort ? 1 : 0

    Davide

    agosto 31, 2009 at 7:57 am

  3. E’ stata durissima !😀
    Un carattere in meno di Davide e con in + la gestione di errori in fase di input (assenza di uno o di entrambi dei due termini):

    p eval”(#{a=’ARGV.shift.split(//).sort’}==#{a})rescue :E”

    ^_^

    Sandro

    settembre 13, 2009 at 21:16 pm

  4. In PHP

    strspn($argv[1],$argv[2])==strlen($argv[1])?1:0

    Damiano

    settembre 29, 2009 at 16:49 pm

  5. @Damiano, sei sicuro che non manchi qualcosa? Tipo un echo.
    Ho controllato lo script con patate e patte come parametri e l’output è errato.

    eineki

    ottobre 1, 2009 at 22:03 pm

  6. Sicuramente mancava la mia soluzione, scusate il ritardo ma non avevo la testa abbastanza sul collo per ricordarmi che avrei dovuto postarla quasi tre settimane fa.

    function s($x){
    $a=str_split($x);
    sort($a);
    return(join($a));
    }
    echo s($argv[1])==s($argv[2])?1:0;

    eineki

    ottobre 1, 2009 at 22:04 pm


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: