Skip to content
Related Articles

Related Articles

Improve Article

Find last index of a character in a string

  • Difficulty Level : Basic
  • Last Updated : 30 Apr, 2021

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++




// 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;
}

Java




// 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 */

Python3




# 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.

C#




// 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 */

PHP




<?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.
?>

Javascript




<script>
// javascript 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)
{
    let index = -1;
    for (let i = 0; i < str.length; i++)
        if (str[i] == x)
            index = i;
    return index;
}
   
 
// Driver code
 
    // String in which char is to be found
    let str = "geeksforgeeks";
   
    // char whose index is to be found
    let x = 'e';
   
    let index = findLastIndex(str, x);
    if (index == -1)
        document.write("Character not found");
    else
       document.write("Last index is " + index);
      
     // This code is contributed by sanjoy_62.
</script>

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




// 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;
}

Java




// 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

Python3




# 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

C#




// 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

PHP




<?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.
?>

Javascript




<script>
    // Javascript code to find last index 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 (let i = str.length - 1; i >= 0; i--)
            if (str[i] == x)
                return i;
      
        return -1;
    }
     
    let str = "geeksforgeeks";
    let x = 'e';
    let index = findLastIndex(str, x);
    if (index == -1)
      document.write("Character not found");
    else
      document.write("Last index is " + index);
             
</script>

Output: 
 

Last index is 10

Time Complexity : O(n) 
 

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :