-
-
Notifications
You must be signed in to change notification settings - Fork 414
/
Copy pathlongest-words.py
32 lines (28 loc) · 1.09 KB
/
longest-words.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from string import lower
def longest_word(words):
"""
Runtime: O(n)
"""
longest = [""]
for w in words.split(" "):
w = lower(w)
if len(w) == len(longest[0]):
if w not in longest:
longest.append(w)
if len(lower(w)) > len(longest[0]):
longest = [w]
return longest
print longest_word("You are just an old antidisestablishmentarian") # ["antidisestablishmentarian"]
print longest_word("I gave a present to my parents") # ["present", "parents"]
print longest_word("Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo") #["buffalo"] or ["Buffalo"]
# Another approach
def longest_word(words):
words = sorted(words.split(),key=len)
longest = []
for i in words:
if len(i) == len(words[-1]):
longest.append(i.lower())
return sorted(list(set(longest)))
print(longest_word("You are just an old antidisestablishmentarian")) # ['antidisestablishmentarian']
print(longest_word("I gave a present to my parents")) # ['parents', 'present']
print(longest_word("Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo")) # ['buffalo']