Open In App

Find last index of a character in a string

Last Updated : 27 Jul, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

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:

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

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

 


Next Article
Article Tags :
Practice Tags :

Similar Reads