找出最长的神奇序列 | 豆包MarsCode AI刷题

11 阅读4分钟

问题描述

小F是一个好学的中学生,今天他学习了数列的概念。他在纸上写下了一个由 0 和 1 组成的正整数序列,长度为 n。这个序列中的 1 和 0 交替出现,且至少由 3 个连续的 0 和 1 组成的部分数列称为「神奇数列」。例如,10101 是一个神奇数列,而 1011 不是。现在,小F想知道在这个序列中,最长的「神奇数列」是哪一个。你能帮他找到吗?

如果有多个神奇数列,那么输出最先出现的一个。

测试样例

样例1:

输入:inp = "0101011101"
输出:'010101'

样例2:

输入:inp = "1110101010000"
输出:'10101010'

样例3:

输入:inp = "1010101010101010"
输出:'1010101010101010'

代码实现

#include <iostream>
#include <string>

std::string solution(const std::string& inp) {
    // 初始化变量来存储最长神奇数列的起始位置和长度
    int max_start = 0;
    int max_length = 0;
    
    // 遍历字符串
    for (int i = 0; i < inp.size(); ++i) {
        // 初始化当前神奇数列的起始位置和长度
        int current_start = i;
        int current_length = 1;
        
        // 检查是否与前一个字符交替出现
        while (i + 1 < inp.size() && inp[i] != inp[i + 1]) {
            // 更新当前神奇数列的长度
            current_length++;
            i++;
        }
        
        // 如果当前神奇数列长度达到 3 或以上,检查是否是最长的
        if (current_length >= 3 && current_length > max_length) {
            max_start = current_start;
            max_length = current_length;
        }
    }
    
    // 返回最长的神奇数列
    return inp.substr(max_start, max_length);
}

int main() {
    // 添加你的测试用例
    std::cout << (solution("0101011101") == "010101") << std::endl;
    std::cout << (solution("1110101010000") == "10101010") << std::endl;
    std::cout << (solution("1010101010101010") == "1010101010101010") << std::endl;
    return 0;
}

功能亮点:云端编辑器

深入剖析

云端编辑器是 AI 刷题平台的一个重要功能亮点。它允许用户在任何设备上随时随地进行编程练习,无需担心本地环境的配置问题。云端编辑器通常集成了多种编程语言的支持,提供实时的代码高亮、自动补全、错误提示等功能,极大地提升了编程效率和学习体验。

对学习的重要性和独特价值

  1. 跨设备访问:用户可以在手机、平板、笔记本电脑等不同设备上无缝切换,保持学习进度的一致性。
  2. 实时反馈:云端编辑器可以实时检测代码错误,并提供即时反馈,帮助用户快速定位和解决问题。
  3. 环境一致性:避免了因本地环境配置不同而导致的代码运行结果不一致的问题,确保学习环境的稳定性。
  4. 协作与分享:用户可以轻松地将代码分享给他人,进行协作学习和代码审查,提升学习效果。

刷题实践:AI 刷题的优势

优势之处

  1. 个性化题目推荐:AI 可以根据用户的学习进度和掌握情况,智能推荐适合的题目,帮助用户有针对性地提升薄弱环节。
  2. 智能解析与提示:AI 可以提供详细的题目解析和代码提示,帮助用户理解题目背后的逻辑和算法。
  3. 数据分析与反馈:AI 可以分析用户的刷题数据,生成学习报告,帮助用户了解自己的学习情况,制定更有效的学习计划。

通过这些功能,不仅能够高效地完成编程练习,还能深入理解题目背后的逻辑和算法,提升自己的编程能力。

总结

AI 刷题平台的云端编辑器、个性化题目推荐、智能解析与提示、数据分析与反馈等功能,极大地提升了编程学习的效率和效果。