Open In App

Find if a string starts and ends with another given string

Improve
Improve
Like Article
Like
Save
Share
Report

Given a string str and a corner string cs, we need to find out whether the string str starts and ends with the corner string cs or not.
Examples: 

Input : str = "geeksmanishgeeks", cs = "geeks"
Output : Yes

Input : str = "shreya dhatwalia", cs = "abc"
Output : No

Algorithm 

  • Find length of given string str as well as corner string cs. Let this length be n and cl respectively.
  • If cl>n, return false as cs can’t be greater than str.
  • Otherwise, find the prefix and suffix of length cl from str. If both prefix and suffix match with corner string cs, return true otherwise return false.

Implementation:

C++




// CPP program to find if a given corner string
// is present at corners.
#include <bits/stdc++.h>
using namespace std;
  
bool isCornerPresent(string str, string corner)
{
    int n = str.length();
    int cl = corner.length();
  
    // If length of corner string is more, it 
    // cannot be present at corners.
    if (n < cl)
       return false;
  
    // Return true if corner string is present at
    // both corners of given string.
    return (str.substr(0, cl).compare(corner) == 0 &&
            str.substr(n-cl, cl).compare(corner) == 0);
}
  
// Driver code
int main()
{
   string str = "geeksforgeeks";
   string corner = "geeks";
   if (isCornerPresent(str, corner))
      cout << "Yes";
   else
      cout << "No";
   return 0;
}


Java




// Java program to find if a given corner
// string is present at corners.
import java.io.*;
class GFG {
      
    static boolean isCornerPresent(String str, 
                                   String corner)
    {
        int n = str.length();
        int cl = corner.length();
  
        // If length of corner string 
        // is more, it cannot be present 
        // at corners.
        if (n < cl)
        return false;
  
        // Return true if corner string 
        // is present at both corners 
        // of given string.
        return (str.substring(0, cl).equals(corner) &&
                str.substring(n - cl, n).equals(corner));
    }
      
    // Driver Code
    public static void main (String[] args)
    {
        String str = "geeksforgeeks";
        String corner = "geeks";
        if (isCornerPresent(str, corner))
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}
  
// This code is contributed by Manish_100


Python3




# Python program to find 
# if a given corner string 
# is present at corners.
  
def isCornerPresent(str, corner) :
  
    n = len(str)
    cl = len(corner)
  
    # If length of corner 
    # string is more, it 
    # cannot be present 
    # at corners.
    if (n < cl) :
        return False
  
    # Return true if corner 
    # string is present at 
    # both corners of given
    # string.
    return ((str[: cl] == corner) and 
            (str[n - cl :] == corner))
  
# Driver Code
str = "geeksforgeeks"
corner = "geeks"
if (isCornerPresent(str, corner)) :
    print ("Yes")
else :
    print ("No")
  
# This code is contributed by 
# Manish Shaw(manishshaw1)


C#




// C# program to find if a 
// given corner string is 
// present at corners.
using System;
  
class GFG 
{
static bool isCornerPresent(string str, 
                            string corner)
{
    int n = str.Length;
    int cl = corner.Length;
  
    // If length of corner 
    // string is more, it 
    // cannot be present 
    // at corners.
    if (n < cl)
        return false;
  
    // Return true if corner 
    // string is present at 
    // both corners of given
    // string.
    return (str.Substring(0, 
            cl).Equals(corner) &&
            str.Substring(n - cl, 
            cl).Equals(corner));
}
  
// Driver Code
static void Main ()
{
    string str = "geeksforgeeks";
    string corner = "geeks";
    if (isCornerPresent(str, corner))
        Console.WriteLine("Yes");
    else
        Console.WriteLine("No");
}
}
  
// This code is contributed by 
// Manish Shaw(manishshaw1)


PHP




<?php
// PHP program to find if a 
// given corner string is 
// present at corners.
  
function isCornerPresent($str
                         $corner)
{
    $n = strlen($str);
    $cl = strlen($corner);
  
    // If length of corner 
    // string is more, it 
    // cannot be present 
    // at corners.
    if ($n < $cl)
        return false;
  
    // Return true if corner 
    // string is present at 
    // both corners of given
    // string.
    return (!strcmp(substr($str, 0, 
                           $cl), $corner) &&
            !strcmp(substr($str, $n
                           $cl, $cl), $corner));
}
  
// Driver Code
$str = "geeksforgeeks";
$corner = "geeks";
if (isCornerPresent($str, $corner))
    echo ("Yes");
else
    echo ("No");
  
// This code is contributed by 
// Manish Shaw(manishshaw1)
?>


Javascript




<script>
      // JavaScript program to find if a given corner string
      // is present at corners.
      function isCornerPresent(str, corner) {
        var n = str.length;
        var cl = corner.length;
  
        // If length of corner string is more, it
        // cannot be present at corners.
        if (n < cl) return false;
  
        // Return true if corner string is present at
        // both corners of given string.
        return (
          str.substring(0, cl).localeCompare(corner) === 0 &&
          str.substring(n - cl, n).localeCompare(corner) === 0
        );
      }
  
      // Driver code
      var str = "geeksforgeeks";
      var corner = "geeks";
      if (isCornerPresent(str, corner)) document.write("Yes");
      else document.write("No");
    </script>


Output

Yes

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



Last Updated : 20 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads