题目描述 给定一个只包含字符 TT 和字符 XX 的字符串 SS。其中字符 TT 的价值为 00,字符 XX 的价值等于其右侧与其直接相邻的连续 TT 个数。 例如,TXTXXTTTXTXXTT 中第 11 个 XX 的价值为 11,第 22 个 XX 的价值为 00,第 33 个 XX 的价值为 22。 字符串 SS 的最大价值定义为:字符串 SS 中价值最大的字符的价值。 请你计算字符串 SS 的最大价值。 【输入格式】 第一行一个整数 TT,表示共有 TT 组测试数据; 每组数据一行,一个字符串 SS,字符串中的每个字符要么是 TT,要么是 XX。 【输出格式】 每组数据输出一行结果,一个整数,表示字符串 SS 中的最大价值。 请编写一个C++程序
时间: 2024-04-12 17:27:17 浏览: 83
下面是一个解决该问题的 C++ 程序:
```cpp
#include<iostream>
#include<string>
using namespace std;
int max_value(string s) {
int max_val = 0;
int curr_val = 0;
int len = s.length();
for (int i = 0; i < len; i++) {
if (s[i] == 'X') {
curr_val = 0;
} else {
curr_val++;
}
max_val = max(max_val, curr_val);
}
return max_val;
}
int main() {
int t;
cin >> t;
while (t--) {
string s;
cin >> s;
int result = max_value(s);
cout << result << endl;
}
return 0;
}
```
该程序首先读取整数 t,表示测试数据的组数。然后,它使用一个循环来依次处理每组数据。
在每组数据中,程序读取一个字符串 s。然后,它使用一个变量 curr_val 来跟踪当前连续的字符 'T' 的个数,并使用变量 max_val 来记录最大的连续 'T' 的个数。当遇到字符 'X' 时,将 curr_val 重置为 0。在遍历完字符串后,输出 max_val。
希望这个程序对你有帮助!
阅读全文