# Teaching Kids Programming – Algorithms to Check a Circular Sentence

Teaching Kids Programming – Algorithms to Check a Circular Sentence | ninjasquad

Teaching Kids Programming: Videos on Data Structures and Algorithms

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.

Example 1:
Input: sentence = “leetcode exercises sound delightful”
Output: true
Explanation: The words in sentence are [“leetcode”, “exercises”, “sound”, “delightful”].
– leetcode’s last character is equal to exercises’s first character.
– exercises’s last character is equal to sound’s first character.
– sound’s last character is equal to delightful’s first character.
– delightful’s last character is equal to leetcode’s first character.
The sentence is circular.

Example 2:
Input: sentence = “eetcode”
Output: true
Explanation: The words in sentence are [“eetcode”].
– eetcode’s last character is equal to eetcode’s first character.
The sentence is circular.

Example 3:
Input: sentence = “Leetcode is cool”
Output: false
Explanation: The words in sentence are [“Leetcode”, “is”, “cool”].
– Leetcode’s last character is not equal to is’s first character.
The sentence is not circular.

Constraints:
1 <= sentence.length <= 500
sentence consist of only lowercase and uppercase English letters and spaces.
The words in sentence are separated by a single space.
There are no leading or trailing spaces.

Hints:
Check the character before the empty space and the character after the empty space.
Check the first character and the last character of the sentence.

### How to Check a Circular Sentence?

We need to use the split function that breaks the string/sentence into words (array of words). As the last word needs to be checked against the first, we can push the first word into the array, and then this should avoid index out of range.

 ```1 2 3 4 5 6 7 8 9 10 ``` ```class Solution:     def isCircularSentence(self, arr: str) -> bool:         if not arr:             return True         arr = arr.split()         arr.append(arr[0])         for i in range(0, len(arr) - 1):             if arr[i][-1] != arr[i + 1][0]:                 return False         return True```
```class Solution:
def isCircularSentence(self, arr: str) -> bool:
if not arr:
return True
arr = arr.split()
arr.append(arr[0])
for i in range(0, len(arr) - 1):
if arr[i][-1] != arr[i + 1][0]:
return False
return True```

We can also use the math operator % to rewind the last index plus one to the begining. Also, we can use all to check if all the words are connected.

 ```1 2 3 4 5 6 ``` ```class Solution:     def isCircularSentence(self, arr: str) -> bool:         if not arr:             return True         arr = arr.split()         return all(arr[i][-1] == arr[(i + 1) % len(arr)][0] for i in range(0, len(arr)))        ```
```class Solution:
def isCircularSentence(self, arr: str) -> bool:
if not arr:
return True
arr = arr.split()
return all(arr[i][-1] == arr[(i + 1) % len(arr)][0] for i in range(0, len(arr)))        ```

all conditions is equal to not any (inverse of conditions).

 ```1 ``` `return not any(arr[i][-1] != arr[(i + 1) % len(arr)][0] for i in range(0, len(arr)))`
`return not any(arr[i][-1] != arr[(i + 1) % len(arr)][0] for i in range(0, len(arr)))`

GD Star Rating