Open In App

Python – Check whether a string starts and ends with the same character or not (using Regular Expression)

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:  



'^[a-z]$'
'^([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. 




# Python program to check if a string starts
# and ends with the same character
 
# import re module as it provides
# support for regular expressions
import re
 
# the regular  expression
regex = r'^[a-z]$|^([a-z]).*\1$'
 
# function for checking the string
def check(string):
 
    # pass the regular expression
    # and the string in the search() method
    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)

Article Tags :