2490. Circular Sentence
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 each word in the sentence is equal to the first character of its 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.
https://leetcode.com/problems/circular-sentence/
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 Leetcode’s first character.
The sentence is not circular.
Constraints:
1 <= sentence.length <= 500sentenceconsist of only lowercase and uppercase English letters and spaces.- The words in
sentenceare separated by a single space. - There are no leading or trailing spaces.
Test Cases
class Solution:
def isCircularSentence(self, sentence: str) -> bool:import pytest
from solution import Solution
@pytest.mark.parametrize('sentence, expected', [
("leetcode exercises sound delightful", True),
("eetcode", True),
("Leetcode is cool", False),
])
class Test:
def test_solution(self, sentence, expected):
sol = Solution()
assert sol.isCircularSentence(sentence) == expected
Thoughts
直接遍历一遍每个字符,在每个空格处,比较空格前后的字符是否一致。首尾字符单独比较一次。
Code
class Solution:
def isCircularSentence(self, sentence: str) -> bool:
if sentence[0] != sentence[-1]:
return False
for i, c in enumerate(sentence):
if c == ' ' and sentence[i+1] != sentence[i-1]:
return False
return True
评论需要 JavaScript。