C++ 判断爬坡字符串及坡数计算

本文提供一个 C++ 程序,用于判断给定字符串是否为爬坡字符串。

爬坡字符串定义:

  • 可以被切分成几段。
  • 每一段的开头都是 'A'。
  • 每一段之后的字母都按照字母表的顺序依次排列。

例如,'ABCABCDE' 是一个爬坡字符串,而 'ABCACDE' 不是。

坡数定义:

爬坡字符串的 '坡' 数定义为该字符串切分成的段数。例如,'ABCABAB' 中有三个坡,'ABCAA' 中也有三个坡。

C++ 代码实现:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s;
    cin >> s;

    int n = s.length();
    int count = 1;

    for (int i = 1; i < n; i++) {
        if (s[i] < s[i - 1]) {
            cout << i - 1 << endl;
            return 0;
        }
        if (s[i] == 'A') {
            count++;
        }
    }

    cout << count << endl;

    return 0;
}

程序说明:

  1. 程序首先读取输入的字符串 s
  2. 使用一个循环遍历字符串 s,检查相邻字符的大小关系。
  3. 如果发现当前字符比前一个字符小,则不符合爬坡字符串的定义,输出前一个字符的下标 (0-base) 并终止程序。
  4. 如果当前字符是 'A',说明遇到了一个新的段落,将计数器 count 加 1。
  5. 最后,输出 count 的值,即为爬坡字符串的 '坡' 的个数。

示例:

  • 输入: 'ABCABCDE'

  • 输出: 3

  • 输入: 'ABCACDE'

  • 输出: 3

C++ 判断爬坡字符串及坡数计算

原文地址: https://www.cveoy.top/t/topic/TsJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录