# Find if a string starts and ends with another given string

• Difficulty Level : Easy
• Last Updated : 20 Feb, 2023

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

 ``

## Javascript

 ``

Output

`Yes`

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

My Personal Notes arrow_drop_up