2490.回环句
链接:2490.回环句
难度:Easy
标签:字符串
简介:给你一个字符串 sentence ,请你判断它是不是一个回环句。如果是,返回 true ;否则,返回 false 。
题解 1 - python
- 编辑时间:2023-06-30
- 执行用时:40ms
- 内存消耗:16.1MB
- 编程语言:python
- 解法介绍:字符串分割。
class Solution:
    def isCircularSentence(self, sentence: str) -> bool:
        l = sentence.split(' ')
        for i in range(len(l)):
            if l[i][-1] != l[(i + 1) % len(l)][0]:
                return False
        return True
题解 2 - rust
- 编辑时间:2023-06-30
- 执行用时:4ms
- 内存消耗:2MB
- 编程语言:rust
- 解法介绍:同上。
impl Solution {
    pub fn is_circular_sentence(sentence: String) -> bool {
        let l = sentence
            .split(' ')
            .into_iter()
            .map(|v| v.as_bytes())
            .collect::<Vec<&[u8]>>();
        for i in 0..l.len() {
            if *l[i].last().unwrap() != l[(i + 1) % l.len()][0] {
                return false;
            }
        }
        true
    }
}
题解 3 - cpp
- 编辑时间:2022-12-04
- 内存消耗:6.7MB
- 编程语言:cpp
- 解法介绍:分割后判断。
#include <iostream>
#include <vector>
// bestlyg
# define X first
# define Y second
# define lb(x) ((x) & (-x))
# define mem(a,b) memset(a,b,sizeof(a))
# define debug freopen("r.txt","r",stdin)
# define pi pair<int,int>
#ifdef DEBUG
#define log(frm, args...) {    printf(frm, ##args); }
#else
#define log(frm, args...)
#endif
typedef long long ll;
using namespace std;
class Solution {
public:
    bool isCircularSentence(string sentence) {
        int n = sentence.size();
        istringstream iss(sentence);
        string temp, prev = "", first = "";
        while (getline(iss, temp, ' ')) {
            if (prev == "") {
                first = temp;
            } else {
                if (prev.back() != temp.front()) return false;
            }
            prev = temp;
        }
        if (temp.back() != first.front()) return false;
        return true;
    }
};
题解 4 - cpp
- 编辑时间:2023-06-30
- 执行用时:56ms
- 内存消耗:60.9MB
- 编程语言:cpp
- 解法介绍:贪心,先填充2的列,再依次填充1的列。
class Solution {
public:
    bool isCircularSentence(string sentence) {
        int n = sentence.size();
        for (int i = 0; i < n; i++) {
            while (sentence[i] != ' ' && i < n) i++;
            if (i < n - 1 && sentence[i - 1] != sentence[i + 1]) return false;
        }
        return sentence[n - 1] == sentence[0];
    }
};