回环句【LC2490】
句子 是由单个空格分隔的一组单词,且不含前导或尾随空格。
- 例如,
"Hello World"、"HELLO"、"hello world hello world"都是符合要求的句子。单词 仅 由大写和小写英文字母组成。且大写和小写字母会视作不同字符。
如果句子满足下述全部条件,则认为它是一个 回环句 :
- 单词的最后一个字符和下一个单词的第一个字符相等。
- 最后一个单词的最后一个字符和第一个单词的第一个字符相等。
例如,
"leetcode exercises sound delightful"、"eetcode"、"leetcode eats soul"都是回环句。然而,"Leetcode is cool"、"happy Leetcode"、"Leetcode"和"I like Leetcode"都 不 是回环句。给你一个字符串
sentence,请你判断它是不是一个回环句。如果是,返回true;否则,返回false。
-
思路
判断字符串首尾是否相同,不相等直接返回
false;否则,判断空格前后字符是否相等,如果不相等直接返回false。运行到最后,表示为回环句,返回true -
实现
class Solution { public boolean isCircularSentence(String sentence) { int n = sentence.length(); if (sentence.charAt(0) != sentence.charAt(n - 1)){ return false; } int find = sentence.indexOf(' '); while(find != -1){ if (find > 0 && find + 1 < n && sentence.charAt(find - 1) != sentence.charAt(find + 1)){ return false; } find = sentence.indexOf(' ', find + 1); } return true; } }- 复杂度
- 时间复杂度:O(n)\mathcal{O}(n)O(n)
- 空间复杂度:$
- 复杂度

该问题讨论了一种特定类型的字符串,称为回环句,其中单词的结尾和下一个单词的开始匹配。给定一个字符串,程序需要检查它是否符合回环句的条件。算法首先比较首尾字符,然后遍历字符串查找空格,检查空格前后的字符是否相等,以确定回环性质。如果所有条件都满足,则字符串是回环句,否则不是。该算法的时间复杂度为O(n),其中n是字符串的长度。
16万+

被折叠的 条评论
为什么被折叠?



