Search

# Re.start() & Re.end()

You can find this problem on hakerrank

Problem Statement:

start() & end() These expressions return the indices of the start and end of the substring matched by the group.

Code

```>>> import re
>>> m = re.search(r'\d+','1234')
>>> m.end()
4
>>> m.start()
0 ```

Task You are given a string S. Your task is to find the indices of the start and end of string K in S.

Input Format The first line contains the string S. The second line contains the string K.

Constraints 0 < len(S) < 100

0 < len(K) < len(S)

Output Format Print the tuple in this format: (start _index, end _index). If no match is found, print (-1, -1).

Sample Input

```aaadaa
aa ```

Sample Output

```(0, 1)
(1, 2)
(4, 5)```

Solution 1

Using re:

```import re
s = input()
k = input()

substring = re.compile(k)
r = substring.search(s)

if not r:
print("(-1, -1)")
else:
while r:
print("({}, {})".format(r.start(), r.end() - 1))
r = substring.search(s,r.start() + 1)

```

Solution 2

Without using any library:

```S = input()
k = input()
check = False
for i in range(len(S)-len(k)+1):
if S[i:i+len(k)]==k:
check = True
print("({}, {})".format(i,i+len(k)-1))
if check==False:
print("(-1, -1)")```

Happy Coding!

Follow us on Instagram @programmersdoor

Please write comments if you find any bug in above code/algorithm, or find other ways to solve the same problem.

Follow Programmers Door for more.