https://leetcode.com/problems/circular-sentence
2490. Circular Sentence
如果句子中的单字 前一个单字的最后一个字符 等于 下一个单字的第一个字符
以及 最后一个单字的最后一个字符 等于 第一个单字的第一个字符
则该句子是循环语句
大小写字母视为不同
Example 1:
Input: sentence = "leetcode exercises sound delightful"
Output: true
Example 2:
Input: sentence = "eetcode"
Output: true
Example 3:
Input: sentence = "Leetcode is cool"
Output: false
Constraints:
1 <= sentence.length <= 500
sentence 只包含大小写字母跟空格
sentence 的单字由一个空格分隔
没有起始空格或结尾空格
思路1:
用 split 把句子分成单字list之后 判断相邻单字间头尾是否相同
Python Code:
class Solution:
def isCircularSentence(self, sentence: str) -> bool:
s = sentence.split()
for i in range(-1, len(s)-1):
if s[i][-1] != s[i+1][0]:
return False
return True
思路2:
先判断句子头尾是否相同 循环一遍句子 当遇到空格时再判断
Python Code:
class Solution:
def isCircularSentence(self, sentence: str) -> bool:
if sentence[0] != sentence[-1]:
return False
for i in range(len(sentence)):
if sentence[i] == ' ' and sentence[i-1] != sentence[i+1]:
return False
return True
又是对大师们来说太简单的一天 没人发 :(
补个JavaScript的写法 不过跟思路2一样就是了
JavaScript Code:
/**
* @param {string} sentence
* @return {boolean}
*/
var isCircularSentence = function(sentence) {
if (sentence[0] !== sentence[sentence.length - 1]) {
return false;
}
for (var i = 0; i < sentence.length - 1; i++) {
if (sentence[i] === ' ' && sentence[i - 1] !== sentence[i + 1]) {
return false;
}
}
return true;
};