这是一个模拟问题,可以通过以下步骤解决:
- 关键发现:小红只能从上往下吃遇到相同颜色就会停止需要记录上一个吃的糖葫芦的颜色
- 模拟策略:从第一个糖葫芦开始吃记录上一个吃的糖葫芦颜色如果下一个糖葫芦颜色相同,就停止否则继续吃并更新上一个颜色
- 具体步骤:遍历字符串维护上一个颜色和已吃数量遇到相同颜色就退出循环
#include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; int ans = 1; // 第一个糖葫芦一定能吃 char last = s[0]; // 记录上一个颜色 for(int i = 1; i < s.length(); i++) { if(s[i] == last) { // 遇到相同颜色就停止 break; } last = s[i]; // 更新上一个颜色 ans++; // 可以吃这个糖葫芦 } cout << ans << endl; return 0; }