Given a string. The task is to write a regular expression to check whether a string starts and ends with the same character.
Examples:
Input :
abba
Output :
Valid
Input :
a
Output :
Valid
Input :
abc
Output :
Invalid
Solution:
The input can be divide into 2 cases:
- Single character string: All single character strings satisfies the condition that they start and end with the same character. The regex for a string with only 1 character will be-
'^[a-z]$'
- Multiple character string: Here we need to check whether the first and the last character is same or not. We do this using \1. The regex will be-
'^([a-z]).*\1$'
The two regular expressions can be combined using |
'^[a-z]$|^([a-z]).*\1$'
In this program, we will use search() method of re module.
Below is the implementation.
Python3
import re
regex = r '^[a-z]$|^([a-z]).*\1$'
def check(string):
if (re.search(regex, string)):
print ( "Valid" )
else :
print ( "Invalid" )
if __name__ = = '__main__' :
sample1 = "abba"
sample2 = "a"
sample3 = "abcd"
check(sample1)
check(sample2)
check(sample3)
|
Output :
Valid
Valid
Invalid
Time Complexity : O(n), where n is length of string
Auxiliary Space : O(1)
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
31 Jul, 2023
Like Article
Save Article