Open In App

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. 

Implementation:




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




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




<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 : O(n)
Auxiliary Space: O(1)

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. 

Implementation:




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




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





Output
Last index is 10

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

 


Article Tags :