Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Check if a string is suffix of another

  • Difficulty Level : Easy
  • Last Updated : 03 May, 2021

Given two strings s1 and s2, check if s1 is a suffix of s2. Or in simple words, we need to find whether string s2 ends with string s1. 

Examples : 

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.

Input : s1 = "geeks" and s2 = "geeksforgeeks"
Output : Yes

Input : s1 = "world", s2 = "my first code is hello world"
Output : Yes

Input : s1 = "geeks" and s2 = "geeksforGeek"
Output : No

Method 1 (Writing our own code)



C++




// CPP program to find if a string is
// suffix of another
#include <iostream>
#include <string>
using namespace std;
 
bool isSuffix(string s1, string s2)
{
    int n1 = s1.length(), n2 = s2.length();
    if (n1 > n2)
      return false;
    for (int i=0; i<n1; i++)
       if (s1[n1 - i - 1] != s2[n2 - i - 1])
           return false;
    return true;
}
 
int main()
{
    string s1 = "geeks", s2 = "geeksforgeeks";
 
    // Test case-sensitive implementation
    // of endsWith function
    bool result = isSuffix(s1, s2);
 
    if (result)
        cout << "Yes";
    else
        cout << "No";
 
    return 0;
}

Java




// Java program to find if a string is
// suffix of another
 
class GFG
{
    static boolean isSuffix(String s1, String s2)
    {
        int n1 = s1.length(), n2 = s2.length();
        if (n1 > n2)
        return false;
        for (int i=0; i<n1; i++)
        if (s1.charAt(n1 - i - 1) != s2.charAt(n2 - i - 1))
            return false;
        return true;
    }
     
    public static void main(String []args)
    {
        String s1 = "geeks", s2 = "geeksforgeeks";
     
        // Test case-sensitive implementation
        // of endsWith function
        boolean result = isSuffix(s1, s2);
     
        if (result)
            System.out.println( "Yes");
        else
            System.out.println("No");
     
         
    }
 
}
 
// This code is contributed by iAyushRaj

Python3




# Python 3 program to find if a
# string is suffix of another
def isSuffix(s1, s2):
     
    n1 = len(s1)
    n2 = len(s2)
    if (n1 > n2):
        return False
    for i in range(n1):
        if(s1[n1 - i - 1] != s2[n2 - i - 1]):
            return False
    return True
 
# Driver Code
if __name__ == "__main__":
     
    s1 = "geeks"
    s2 = "geeksforgeeks"
 
    # Test case-sensitive implementation
    # of endsWith function
    result = isSuffix(s1, s2)
 
    if (result):
        print("Yes")
    else:
        print( "No")
 
# This code is contributed
# by ChitraNayal

C#




// C# program to find if a string is
// suffix of another
 
using System;
class GFG
{
    static bool isSuffix(string s1, string s2)
    {
        int n1 = s1.Length, n2 = s2.Length;
        if (n1 > n2)
        return false;
        for (int i=0; i<n1; i++)
        if (s1[n1 - i - 1] != s2[n2 - i - 1])
            return false;
        return true;
    }
     
    public static void Main()
    {
        string s1 = "geeks", s2 = "geeksforgeeks";
     
        // Test case-sensitive implementation
        // of endsWith function
        bool result = isSuffix(s1, s2);
     
        if (result)
            Console.WriteLine( "Yes");
        else
            Console.WriteLine("No");
     
         
    }
 
}
 
// This code is contributed by iAyushRaj

PHP




<?php
// PHP program to find if a
// string is suffix of another
function isSuffix($s1, $s2)
{
    $n1 = ($s1);
    $n2 = strlen($s2);
    if ($n1 > $n2)
    return false;
    for ($i = 0; $i < $n1; $i++)
    if ($s1[$n1 - $i - 1] != $s2[$n2 - $i - 1])
        return false;
    return true;
}
// Driver Code
$s1 = "geeks";
$s2 = "geeksforgeeks";
 
// Test case-sensitive implementation
// of endsWith function
$result = isSuffix($s1, $s2);
 
if ($result)
    echo "Yes";
else
    echo "No";
 
// This code is contributed by m_kit
?>

Javascript




<script>
 
// Javascript program to find if
// a string is suffix of another
function isSuffix(s1, s2)
{
    let n1 = s1.length, n2 = s2.length;
    if (n1 > n2)
        return false;
         
    for(let i = 0; i < n1; i++)
        if (s1[n1 - i - 1] != s2[n2 - i - 1])
            return false;
         
    return true;
}
 
// Driver code
let s1 = "geeks", s2 = "geeksforgeeks";
   
// Test case-sensitive implementation
// of endsWith function
let result = isSuffix(s1, s2);
 
if (result)
    document.write( "Yes");
else
    document.write("No");
     
// This code is contributed by decode2207
 
</script>
Output: 
Yes

 

Method 2 (Using boost library in C++) 
Since std::string class does not provide any endWith() function in which a string ends with another string so we will be using Boost Library. Make sure to include #include boost/algorithm/string.hpp and #include string to run the code fine.

C++




// CPP program to find if a string is
// suffix of another
#include <boost/algorithm/string.hpp>
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string s1 = "geeks", s2 = "geeksforgeeks";
 
    // Test case-sensitive implementation
    // of endsWith function
    bool result = boost::algorithm::ends_with(s2, s1);
 
    if (result)
        cout << "Yes";
    else
        cout << "No";
 
    return 0;
}

Java




// Java program to find if a string is
// suffix of another
class GFG
{
 
    public static void main(String[] args)
    {
        String s1 = "geeks", s2 = "geeksforgeeks";
 
        // Test case-sensitive implementation
        // of endsWith function
        boolean result = s2.endsWith(s1);
 
        if (result)
                System.out.println("Yes");
        else
            System.out.println("No");
    }
}
 
// This code is contributed by 29AjayKumar

Python3




# Python3 program to find if a string is
# suffix of another
 
if __name__ == '__main__':
    s1 = "geeks";
    s2 = "geeksforgeeks";
     
    # Test case-sensitive implementation
    # of endsWith function
    result = s2.endswith(s1);
     
    if (result):
        print("Yes");
    else:
        print("No");
     
# This code is contributed by Rajput-Ji

C#




// C# program to find if a string is
// suffix of another
using System;
 
class GFG
{
    // Driver code
    public static void Main(String[] args)
    {
        String s1 = "geeks", s2 = "geeksforgeeks";
 
        // Test case-sensitive implementation
        // of endsWith function
        bool result = s2.EndsWith(s1);
 
        if (result)
                Console.WriteLine("Yes");
        else
            Console.WriteLine("No");
    }
}
 
// This code contributed by Rajput-Ji

Javascript




<script>
// Javascript program to find if a string is
// suffix of another
     
    let s1 = "geeks", s2 = "geeksforgeeks";
    // Test case-sensitive implementation
    // of endsWith function
    let result = s2.endsWith(s1);
    if (result)
            document.write("Yes");
    else
        document.write("No");
         
     
    // This code is contributed by avanitrachhadiya2155
</script>
Output : 
Yes

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :