/*
双指针思想
使用场景:两头牛,让其pk,根据力量情况要进行不同的指针操作,
注意点:
根据样例推测该题血量a代表1,b代表2
该题血量下界为0,初始下界为1,因此将字符处理为数字时要将-('a' - 1)
*/
完整ac代码
#include <iostream> using namespace std; int main(){ const int N = 1e4; int t; cin >> t; while(t--){ int len,cnt = 0,res = 0; string n; cin >> len >> n; for(int i = 0;i < len;i++){ n[i] -= 'a' - 1; } for(int i = 0,j = 1;i < len&&j < len;j++){ if(n[i] >= n[j]){ cnt++; n[i] -= n[j]; } else{ n[j] -= n[i]; cnt=1; i = j; } res = max(res , cnt); } cout << res << endl; } return 0; }