Problem
A sentence is a list of words that are separated by a single space with no leading or trailing spaces.
- For example,
"Hello World"
,"HELLO"
,"hello world hello world"
are all sentences.
Words consist of only uppercase and lowercase English letters. Uppercase and lowercase English letters are considered different.
A sentence is circular if:
- The last character of a word is equal to the first character of the next word.
- The last character of the last word is equal to the first character of the first word.
For example, "leetcode exercises sound delightful"
, "eetcode"
, "leetcode eats soul"
are all circular sentences. However, "Leetcode is cool"
, "happy Leetcode"
, "Leetcode"
and "I like Leetcode"
are not circular sentences.
Given a string sentence
, return true
if it is circular. Otherwise, return false
.
Examples
Example 1:
|
|
Example 2:
|
|
Example 3:
|
|
Solution
Video explanation
Here is the video explaining below methods in detail. Please check it out:
Method 1 - Splitting the string
To determine if a sentence is circular, we can follow these steps:
- Split the sentence into words based on spaces.
- Check if each word’s last character matches the first character of the next word.
- Additionally, ensure that the last word’s last character matches the first word’s first character.
Code
|
|
|
|
Complexity
- ⏰ Time complexity:
O(n)
, wheren
is the length of the sentence. This is because we need to iterate through the split words to check their characters. - 🧺 Space complexity:
O(n)
as we are splitting the string intok
words and storing them in array.
Method 2 - Simple Iteration char by char
If we don’t split the string, we can directly iterate through its characters and perform checks as follows:
- Whenever a space (’ ‘) is encountered, ensure the character before the space matches the character after the space.
- If any mismatch is found, return
false
.
Additionally, we need to match the first and last characters of the sentence. Here is the refined approach:
- Initial Check: Ensure the first character of the sentence matches the last character.
- Traverse Sentence: Iterate through the sentence from the second character to the second-last character.
- Whenever a space (’ ‘) is encountered, check if the character immediately before the space matches the character immediately after the space.
- If a mismatch is found at any point, return
false
.
- Final Check: If all conditions during traversal are satisfied, return
true
.
Java
|
|
Python
|
|
Complexity
- ⏰ Time complexity:
O(n)
- 🧺 Space complexity:
O(1)