Дана строка, содержащая только латинские строчные буквы и вопросительный знак, ваша задача состоит в том, чтобы замените знаки вопроса строчными буквами таким образом, чтобы образующиеся при замене подстроки имели максимальную длину. Возвращает максимальную длину подстроки, состоящей из одинаковых строчных букв.
Пример: "a??a"
вывод: 4
Пояснение: замена оба '?' с 'a' получается "aaaa", максимальная длина которого равна 4.
Пример: "ab?ca"
вывод: 2
Пояснение: замена '?' с 'b' или 'c' приводит к максимальной замене одних и тех же символов длиной 2.
Чтобы решить этот вопрос, я планировал использовать подход со скользящим окном, но в итоге получилось следующее:
Код: Выделить всё
#include
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
string s;
cin>>s;
int n=s.length();
int ans=INT_MIN;
int i=0;
int j=0;
char ch='#';
for(;i=1){
if(s[temp]=='?' && s[temp-1]!='?') break;
temp--;
}
j=temp;
}
}
}
ans=max(ans,i-j);
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78547146/need-to-find-some-testcases-or-checking-possible-points-of-failure-for-the-code[/url]