Open In App

Python | First character occurrence from rear String

Improve
Improve
Like Article
Like
Save
Share
Report

There are many ways to find out the first index of element in String as python in its language provides index() function that returns the index of first occurrence of element in String. But if one desires to get the last occurrence of element in string, usually a longer method has to be applied. Lets discuss certain shorthands to achieve this particular task. 

Method #1 : Using rfind() This is usually the hack that we can employ to achieve this task. Employing string function rfind() to get the first element from right i.e last index of element in String. 

Python3




# Python 3 code to demonstrate
# First character occurrence from rear String
# using rfind()
 
# initializing string
test_str = "Geeksforgeeks"
 
# printing original string
print ("The original string is : " + str(test_str))
 
# using rfind()
# to get last element occurrence
res = test_str.rfind('e')
 
# printing result
print ("The index of last element occurrence: " + str(res))


Output : 

The original string is : Geeksforgeeks
The index of last element occurrence: 10

Time complexity: O(n), where n is the length of the input string. 
Auxiliary space: O(1).

Method #2 : Using List Slice + index() + list() One can convert the string to list using list() and then using list slicing we reverse the list and use the conventional index method to get the index of first occurrence of element. Due to reversed list, the last occurrence is returned rather than the first index of list. 

Python3




# Python 3 code to demonstrate
# First character occurrence from rear String
# using List Slice + index() + list()
 
# initializing string
test_str = "Geeksforgeeks"
 
# printing original string
print ("The original string is : " + str(test_str))
 
# using List Slice + index() + list()
# First character occurrence from rear String
test_str = list(test_str)
res = len(test_str) - 1 - test_str[::-1].index('e')
 
# printing result
print ("The index of last element occurrence: " + str(res))


Output : 

The original string is : Geeksforgeeks
The index of last element occurrence: 10

Time Complexity: O(n)
Auxiliary Space: O(n)

Method #3 : Using max() method

Python3




# Python 3 code to demonstrate
# First character occurrence from rear String
 
# initializing string
test_str = "Geeksforgeeks"
 
# printing original string
print ("The original string is : " + str(test_str))
 
# First character occurrence from rear String
x=[]
for i in range(0,len(test_str)):
    if(test_str[i]=="e"):
        x.append(i)
res=max(x)
# printing result
print ("The index of last element occurrence: " + str(res))


Output

The original string is : Geeksforgeeks
The index of last element occurrence: 10

Time complexity: O(n), where n is the length of the input string. 
Auxiliary space: O(m), where m is the number of occurrences of the character “e” in the input string. 

Method #4: Using index() method

Python3




# Python 3 code to demonstrate
# First character occurrence from rear String
# using index
 
# initializing string
test_str = "Geeksforgeeks"
 
# Reversing the string
reverse_str = test_str[::-1]
# printing original string
print("The original string is : " + str(test_str))
 
# using index()
# to get last element occurrence
res = reverse_str.index('e')
 
res = len(test_str)-res - 1
# printing result
print("The index of last element occurrence: " + str(res))


Output

The original string is : Geeksforgeeks
The index of last element occurrence: 10

Time Complexity: O(n)
Auxiliary Space: O(n)

Method #5:  Python code to demonstrate First character occurrence from rear String using Regex

Python3




import re
 
#initializing string
test_str = "Geeksforgeeks"
 
#printing original string
print("The original string is : " + str(test_str))
 
#using Regex to get last element occurrence
match = re.search(r'e(?!.*e)', test_str)
res = match.start()
 
#printing result
print("The index of last element occurrence: " + str(res))


Output

The original string is : Geeksforgeeks
The index of last element occurrence: 10

Time Complexity: O(n)
Auxiliary Space: O(n)

Method #6: Using a loop to iterate through the string from the end

Start iterating through the string from the end using a loop. Check each character and if we find the first occurrence of the character we’re looking for, store the index and break out of the loop.

Python3




#initializing string
test_str = "Geeksforgeeks"
 
#printing original string
print("The original string is : " + str(test_str))
 
#iterating through the string from the end
for i in range(len(test_str)-1, -1, -1):
    if test_str[i] == 'e':
        res = i
        break
 
#printing result
print("The index of last element occurrence: " + str(res))


Output

The original string is : Geeksforgeeks
The index of last element occurrence: 10

Time complexity: O(n), where n is the length of the input string.
Auxiliary space: O(1).



Last Updated : 15 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads