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

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)

Previous
Next