Find if a string starts and ends with another given string
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)
Please Login to comment...