[Tutor] Finding the shortest word in a list of words
Lie Ryan
lie.1296 at gmail.com
Tue Jan 20 20:23:43 CET 2009
On Tue, 20 Jan 2009 09:20:22 -0800, Marc Tompkins wrote:
> On Tue, Jan 20, 2009 at 5:42 AM, Lie Ryan <lie.1296 at gmail.com> wrote:
>
>> > Using sys.maxint to prime minLen is overkill, of course -
>> > "antidisestablishmentarianism" is only 28 letters long, after all -
>> > but it should be larger than any word you can expect to see. This
>> > doesn't catch ties, though... could do that like so:
>
>> Other than overkill, it is wrong. If the shortest "word" is longer than
>> maxint it'd give wrong result.
>
> What language do you speak (or machine do you use), where the shortest
> word in a potential list is longer than maxint? On my machine maxint is
> 2,147,483,647. That's what I meant by overkill.
what I meant as wrong is that it is possible that the code would be used
for a string that doesn't represent human language, but arbitrary array
of bytes. Also, it is a potential security issue.
> You could just simply use the len of the first word.
>
> True dat. Requires an extra step or two, though - initializing with
> some impossibly huge number is quick.
len() is fast, and it also removes the need to import sys, which actually
removes an extra step or two
>> The best solution though, have been answered by Kent Johnson.
>>
> Extremely terse and elegant, doesn't find ties.
<snip>
> Output: No
which, at the time of writing, was my impression on the OP's request.
> Mine returns (2, ['No', 'is'], 9, ['repressed', 'alienated']). I could
> be wrong - it seemed more like what the OP actually wanted, but he'd be
> the judge of that.
More information about the Tutor
mailing list