Find last index of a character in a string

Given a string str and a character x, find last index of x in str.

Examples :

Input : str = "geeks", x = 'e'
Output : 2
Last index of 'e' in "geeks" is: 2 

Input : str = "Hello world!", x = 'o'
Output : 7
Last index of 'o' is: 7 


Method 1 (Simple : Traverse from left) :
Traverse given string from left to right and keep updating index whenever x matches with current character.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP program to find last index of
// character x in given string.
#include <iostream>
using namespace std;
  
// Returns last index of x if it is present.
// Else returns -1.
int findLastIndex(string& str, char x)
{
    int index = -1;
    for (int i = 0; i < str.length(); i++)
        if (str[i] == x)
            index = i;
    return index;
}
  
// Driver code
int main()
{
    // String in which char is to be found
    string str = "geeksforgeeks";
  
    // char whose index is to be found
    char x = 'e';
    int index = findLastIndex(str, x);
    if (index == -1)
        cout << "Character not found";
    else
        cout << "Last index is " << index;
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find last index
// of character x in given string.
import java.io.*;
  
class GFG {
   
// Returns last index of x if
// it is present Else returns -1.
static int findLastIndex(String str, Character x)
{
    int index = -1;
    for (int i = 0; i < str.length(); i++)
        if (str.charAt(i) == x)
            index = i;
    return index;
}
   
// Driver code
public static void main(String[] args)
{
    // String in which char is to be found
    String str = "geeksforgeeks";
  
    // char whose index is to be found
    Character x = 'e';
  
    int index = findLastIndex(str, x);
    if (index == -1)
        System.out.println("Character not found");
    else
        System.out.println("Last index is " + index);
}
}
  
/* This code is contributed by Prerna Saini */

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# A Python program to find last
# index of character x in given
# string.
  
# Returns last index of x if it
# is present. Else returns -1.
def findLastIndex(str, x):
    index = -1
    for i in range(0, len(str)):
        if str[i] == x:
            index = i
    return index
  
# Driver program
  
# String in which char is to be found
str = "geeksforgeeks"
  
# char whose index is to be found
x = 'e'
  
index = findLastIndex(str, x)
  
if index == -1:
    print("Character not found")
else:
    print('Last index is', index)
  
# This code is contributed by shrikant13.

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to find last index
// of character x in given string.
using System;
  
class GFG {
  
    // Returns last index of x if
    // it is present Else returns -1.
    static int findLastIndex(string str, char x)
    {
        int index = -1;
        for (int i = 0; i < str.Length; i++)
            if (str[i] == x)
                index = i;
        return index;
    }
      
    // Driver code
    public static void Main()
    {
        // String in which char is to be found
        string str = "geeksforgeeks";
      
        // char whose index is to be found
        char x = 'e';
      
        int index = findLastIndex(str, x);
        if (index == -1)
            Console.WriteLine("Character not found");
        else
            Console.WriteLine("Last index is " + index);
    }
}
  
/* This code is contributed by vt_m */

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to find last index of
// character x in given string.
  
// Returns last index of 
// x if it is present.
// Else returns -1.
function findLastIndex($str, $x)
{
    $index = -1;
    for ($i = 0; $i < strlen($str); $i++)
        if ($str[$i] == $x)
            $index = $i;
    return $index;
}
  
// Driver code
// String in which 
// char is to be found
$str = "geeksforgeeks";
  
// char whose index
// is to be found
$x = 'e';
$index = findLastIndex($str, $x);
if ($index == -1)
    echo("Character not found");
else
    echo("Last index is " . $index);
  
// This code is contributed by Ajit.
?>

chevron_right



Output:

Last index is 10

Time Complexity : Θ(n)

Method 2 (Efficient : Traverse from right) :
In above method 1, we always traverse complete string. In this method, we can avoid complete traversal in all those cases when x is present. The idea is to traverse from right side and stop as soon as we find character.

CPP

filter_none

edit
close

play_arrow

link
brightness_4
code

// Simple CPP program to find last index of
// character x in given string.
#include <iostream>
using namespace std;
  
// Returns last index of x if it is present.
// Else returns -1.
int findLastIndex(string& str, char x)
{
    // Traverse from right
    for (int i = str.length() - 1; i >= 0; i--)
        if (str[i] == x)
            return i;
  
    return -1;
}
  
// Driver code
int main()
{
    string str = "geeksforgeeks";
    char x = 'e';
    int index = findLastIndex(str, x);
    if (index == -1)
        cout << "Character not found";
    else
        cout << "Last index is " << index;
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java code to find last index
// character x in given string.
import java.io.*;
class GFG {
   
// Returns last index of x if
// it is present. Else returns -1.
static int findLastIndex(String str, Character x)
{
    // Traverse from right
    for (int i = str.length() - 1; i >= 0; i--)
        if (str.charAt(i) == x)
            return i;
  
    return -1;
}
   
// Driver code
public static void main(String[] args)
{
    String str = "geeksforgeeks";
    Character x = 'e';
    int index = findLastIndex(str, x);
    if (index == -1)
        System.out.println("Character not found");
    else
        System.out.println("Last index is " + index);
}
}
// This code is contributed by Prerna Saini

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Simple Python3 program to find last
# index of character x in given string.
  
# Returns last index of x if it is 
# present. Else returns -1.
def findLastIndex(str, x):
  
    # Traverse from right
    for i in range(len(str) - 1, -1,-1):
        if (str[i] == x):
            return i
  
    return -1
  
# Driver code
str = "geeksforgeeks"
x = 'e'
index = findLastIndex(str, x)
  
if (index == -1):
    print("Character not found")
else:
    print("Last index is " ,index)
  
# This code is contributed by Smitha

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# code to find last index
// character x in given string.
using System;
  
class GFG {
  
    // Returns last index of x if
    // it is present. Else returns -1.
    static int findLastIndex(string str, char x)
    {
        // Traverse from right
        for (int i = str.Length - 1; i >= 0; i--)
            if (str[i] == x)
                return i;
      
        return -1;
    }
      
    // Driver code
    public static void Main()
    {
        string str = "geeksforgeeks";
        char x = 'e';
        int index = findLastIndex(str, x);
        if (index == -1)
            Console.WriteLine("Character not found");
        else
            Console.WriteLine("Last index is " + index);
    }
}
// This code is contributed by vt_m

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// Simple PHP program to find last index 
// of character x in given string.
  
// Returns last index of x if it 
// is present. Else returns -1.
function findLastIndex($str, $x)
{
      
    // Traverse from right
    for ($i = strlen($str) - 1; $i >= 0; $i--)
        if ($str[$i] == $x)
            return $i;
  
    return -1;
}
  
// Driver code
$str = "geeksforgeeks";
$x = 'e';
$index = findLastIndex($str, $x);
if ($index == -1)
    echo("Character not found");
else
    echo("Last index is " . $index);
  
// This code is contributed by Ajit.
?>

chevron_right



Output:

Last index is 10

Time Complexity : O(n)



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.