C++ 判断爬坡字符串及坡数计算
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;
}
程序说明:
- 程序首先读取输入的字符串
s。 - 使用一个循环遍历字符串
s,检查相邻字符的大小关系。 - 如果发现当前字符比前一个字符小,则不符合爬坡字符串的定义,输出前一个字符的下标 (0-base) 并终止程序。
- 如果当前字符是 'A',说明遇到了一个新的段落,将计数器
count加 1。 - 最后,输出
count的值,即为爬坡字符串的 '坡' 的个数。
示例:
-
输入: 'ABCABCDE'
-
输出: 3
-
输入: 'ABCACDE'
-
输出: 3
原文地址: https://www.cveoy.top/t/topic/TsJ 著作权归作者所有。请勿转载和采集!