30 votes

Code de Golf: Double Caractère de l'Élimination dans la Chaîne de

Le défi: Le plus court de code, par le nombre de caractères, qui détecte et supprime les doublons de caractères dans une Chaîne. Suppression inclut TOUTES les instances de la copie de personnage (donc, si vous trouvez 3 n, tous les trois ont à y aller), et le caractère d'origine doit être conservé.

Exemple D'Entrée 1:
nbHHkRvrXbvkn

Exemple De Sortie 1:
RrX


Exemple D'Entrée 2:
nbHHkRbvnrXbvkn

Exemple De Sortie 2:
RrX

(le second exemple supprime les lettres qui se produisent trois fois; certaines solutions ont échoué à rendre compte de ce)

(Ceci est basé sur mon autre question où j'avais besoin de la manière la plus rapide de le faire en C#, mais je pense qu'il est bon Code de Golf à travers les langues.)

38voto

Frank Bollack Points 10208

LabVIEW 7.1

UN personnage et c'est le bleu de la constante de '1' dans le diagramme. Je vous jure, l'entrée est de copier et coller ;-)

26voto

William Pursell Points 56211

Perl

21 caractères de perl, 31 à invoquer, un total de 36 touches (comptage des maj et finale retour):

perl -pe's/$1//gwhile/(.).*\1/'

19voto

Jeremy Ruten Points 59989

Ruby - 61 53 51 56 35

61 caractères, la règle dit. (Me donne une idée pour un autre code de golf...)

  puts ((i=gets.split(''))-i.select{|c|i.to_s.count(c)<2}).join
+-------------------------------------------------------------------------+
||    |    |    |    |    |    |    |    |    |    |    |    |    |    |  |
|0         10        20        30        40        50        60        70 |
|                                                                         |
+-------------------------------------------------------------------------+
  gets.chars{|c|$><<c[$_.count(c)-1]}

... 35 par Nakilon

18voto

Alec Points 336

APL

23 caractères:

(((1+ρx)-(ϕx)ιx)=xιx)/x

Je suis un APL débutant (appris hier), alors soyez gentils -- ce n'est certainement pas le moyen le plus efficace de le faire. J'ai honte je n'ai pas battre Perl par beaucoup.

Puis à nouveau, peut-être qu'il dit quelque chose quand le moyen le plus naturel pour un débutant afin de résoudre ce problème par la VAE a été encore plus concis que toute autre solution dans n'importe quelle langue jusqu'à présent.

15voto

recursive Points 34729

Python:

s=raw_input()
print filter(lambda c:s.count(c)<2,s)

C'est un complet programme de travail, la lecture et l'écriture sur la console. Le one-liner version peut être utilisé directement à partir de la ligne de commande

python -c 's=raw_input();print filter(lambda c:s.count(c)<2,s)'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X