[ [ [ [ GramChecker new isIsogramBag: 'ALTRUISME'] bench '99,720 per second' ] ] ] [ [ [ [ GramChecker new isIsogram2Dict: 'ALTRUISME'] bench '137,937 per second' ]]] [ [ [ [ GramChecker new isIsogramSet: 'ALTRUISME'] bench '390,887 per second' ]]] [ [ [ [ GramChecker new isIsogramHenrik: 'ALTRUISME'] bench '570,193 per second' ]]] I will transform that as method extension and send the code around. Then I will try pangram :) Le 11/11/16 à 00:23, Henrik Nergaard a écrit :
String>>isIsogram
1 to: self size -1 do: [ :ix | (self findString: (self at: ix) asString startingAt: ix +1 caseSensitive: false ) ~~ 0 ifTrue: [ ^ false ] ].
^ true
-----Original Message----- From: Pharo-users [mailto:pharo-users-bounces@lists.pharo.org] On Behalf Of Sven Van Caekenberghe Sent: Thursday, November 10, 2016 11:10 PM To: Any question about pharo is welcome <pharo-users@lists.pharo.org> Subject: Re: [Pharo-users] Little challenges for a friday evening
[ :string | string size = string asSet size ] value: 'Pharo'.
true [ :string | string size = string asSet size ] value: 'Pharoo'.
false String>>#isIsogram ^ self size = self asSet size
?
On 10 Nov 2016, at 22:19, stepharo <stepharo@free.fr> wrote:
Hi
I'm checking how I would implement an isogram checker
'Pharo' isogram
true because it contains only single letter.
I got a stupid bag drivent implementation but I will do another better and faster.
Stef
PS: after I will do anagram and pangram to have the family of gram checks (this is for a book).