酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

c++ ac字符串 时间限制:1000ms 内存限制:128MB 小明很喜欢通过一道题时候给出的 "accept" 的反馈, 每次见到字符串 "ac" 都会很开心。 给定一个的小写字母字符串, 请问其中有多少个子串等于 "ac" 。 字符串中任意个连续的字符组成的子序列称为该串的子串, 例如: 对于字符串"abcdefg"来说, "ab","cde" 都是子串, 而 "ace" 不是。 输入格式 给定一个字符串 s。 (1≤∣s∣≤1000) 。 输出格式 输出一个整数, 代表其中的子串个数。 样例组 输入#1 复制 acxgpuamkx 输出#1 复制 1

以下是使用 C++ 解决此问题的代码: ```cpp #include <iostream> #include <string> int main() { std::string s; // 读取输入的字符串 std::cin >> s; int count = 0; // 遍历字符串,检查相邻两个字符是否为 "ac" for (int i = 0; i < s.length() - 1; ++i) { // 如果当前字符是 'a' 且下一个字符是 'c' if (s[i] == 'a' && s[i + 1] == 'c') { // 子串 "ac" 的数量加 1 count++; } } // 输出子串 "ac" 的数量 std::cout << count << std::endl; return 0; } ``` 代码解释 1. 读取输入:使用 `std::cin` 读取输入的字符串 `s`。 2. 初始化计数器:定义一个整数变量 `count` 用于记录子串 "ac" 的数量,初始值为 0。 3. 遍历字符串:使用 `for` 循环遍历字符串 `s`,循环变量 `i` 从 0 到 `s.length() - 1`。 4. 检查子串:在每次循环中,检查当前字符 `s[i]` 是否为 'a' 且下一个字符 `s[i + 1]` 是否为 'c'。如果满足条件,则将计数器 `count` 加 1。 5. 输出结果:使用 `std::cout` 输出计数器 `count` 的值。 额外注意的逻辑点 1. 边界条件:在遍历字符串时,要注意循环的边界条件,避免访问越界。这里循环的终止条件是 `i < s.length() - 1`,确保不会访问到字符串的最后一个字符之后的位置。 2. 字符比较:在比较字符时,要注意字符的大小写。题目中明确是小写字母字符串,因此比较时使用的是小写的 'a' 和 'c'。 3. 计数器初始化:在使用计数器之前,要确保将其初始化为 0,否则可能会得到错误的结果。 [2025-07-05 15:30:13 | AI写代码神器 | 519点数解答]

相关提问