## DEV Community is a community of 701,921 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

# Python challenge_5

Mahmoud EL-kariouny
Software developer

## Double letters

#### level of challenge = 3/10

The goal of this challenge is to analyze a string to check if it
contains two of the same letter in a row.
For example, the string "hello" has l twice in a row,
while the string "nono" does not have two identical letters in a row.

Define a function named double_letters that takes a single parameter
The parameter is a string.
Your function must return True if there are two identical letters
in a row in the string, and False otherwise.

Hint

Use a for or while loop and keep track of the current index.
In each iteration, grab the letter at the current index,
And the letter after that, and compare the two.

#### My solution

``````def double_letters(letters):
for letter in range(len(letters)-1):
if letters[letter] == letters[letter+1]:
return True
return False

print(double_letters("letters"))
``````

#### Another solution

``````def double_letters(string):
for i in range(len(string) - 1):
letter1 = string[i]
letter2 = string[i+1]
if letter1 == letter2:
return True
return False
``````

#### shorter solution

``````def double_letters(string):
return any([a == b for a, b in zip(string, string[1:])])
``````
``````def has_double_letters(letters):

for letter in range(len(letters)-1):
if letters[letter] == letters[letter+1]:
print(f"There were tow {letters[letter]} at postion {str(letter)}")

print(double_letters("nono"))
``````

## Discussion (2)

agtoever • Edited

Generalized solution; strifes to make it “pythonic”:

``````def multiple_letters(string, n=2):
return any(c * n in string for c in set(string))
``````

Try it online!

shapa
``````import re

def double_letters(letters: str) -> bool:
return bool(re.search(r'(.)\1', letters, re.IGNORECASE))
``````