Welcome to Subscribe On Youtube
2490. Circular Sentence
Description
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.
Solutions
-
class Solution { public boolean isCircularSentence(String sentence) { var ss = sentence.split(" "); int n = ss.length; for (int i = 0; i < n; ++i) { if (ss[i].charAt(ss[i].length() - 1) != ss[(i + 1) % n].charAt(0)) { return false; } } return true; } }
-
class Solution { public: bool isCircularSentence(string sentence) { auto ss = split(sentence, ' '); int n = ss.size(); for (int i = 0; i < n; ++i) { if (ss[i].back() != ss[(i + 1) % n][0]) { return false; } } return true; } vector<string> split(string& s, char delim) { stringstream ss(s); string item; vector<string> res; while (getline(ss, item, delim)) { res.emplace_back(item); } return res; } };
-
class Solution: def isCircularSentence(self, sentence: str) -> bool: ss = sentence.split() n = len(ss) return all(s[-1] == ss[(i + 1) % n][0] for i, s in enumerate(ss))
-
func isCircularSentence(sentence string) bool { ss := strings.Split(sentence, " ") n := len(ss) for i, s := range ss { if s[len(s)-1] != ss[(i+1)%n][0] { return false } } return true }
-
function isCircularSentence(sentence: string): boolean { const ss = sentence.split(' '); const n = ss.length; for (let i = 0; i < n; ++i) { if (ss[i][ss[i].length - 1] !== ss[(i + 1) % n][0]) { return false; } } return true; }
-
/** * @param {string} sentence * @return {boolean} */ var isCircularSentence = function (sentence) { const ss = sentence.split(' '); const n = ss.length; for (let i = 0; i < n; ++i) { if (ss[i][ss[i].length - 1] !== ss[(i + 1) % n][0]) { return false; } } return true; };
-
impl Solution { pub fn is_circular_sentence(sentence: String) -> bool { let ss: Vec<String> = sentence.split(' ').map(String::from).collect(); let n = ss.len(); for i in 0..n { if ss[i].as_bytes()[ss[i].len() - 1] != ss[(i + 1) % n].as_bytes()[0] { return false; } } return true; } }