1 条题解

  • 0
    @ 2026-6-19 10:30:11

    📝 题目大意

    给定固定字符串 atcoder,输出其第 LL 个字符到第 RR 个字符(两端均包含)的子串。

    💡 解题思路

    1. 题目分析:字符串固定为 "atcoder"(长度 77),1LR71 \le L \le R \le 7,直接截取子串即可。
    2. 算法推导
      • 定义固定字符串 s="atcoder"s = \text{"atcoder"}
      • 子串的起始位置(0-based)为 L1L - 1,长度为 RL+1R - L + 1
      • 使用 C++ 的 std::string::substr(start, length) 直接截取并输出。
    3. 边界与细节L=RL = R 时子串长度为 11,输出单个字符,substr 同样能正确处理。

    ⏱️ 复杂度分析

    • 时间复杂度O(1)O(1),字符串长度固定为 77
    • 空间复杂度O(1)O(1),仅需存储固定字符串。

    💻 标准代码 (C++)

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int L, R;
        cin >> L >> R;
        string s = "atcoder";                        // 固定字符串
        // substr(起始位置(0-based), 长度)
        // 起始位置 = L - 1(将 1-based 转为 0-based)
        // 长度 = R - L + 1(包含两端)
        cout << s.substr(L - 1, R - L + 1) << endl;
        return 0;
    }
    
    • 1

    信息

    ID
    628
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    1
    已通过
    1
    上传者