c++代码
using namespace std;
#include <iostream>
#include<string>
int judge(string a, int i)
{
if (a[i - 1] >= 'a' && a[i + 1] <= 'z' &&a[i-1]<a[i+1]) return 1;
if ( a[i - 1] >= '0' && a[i + 1] <= '9'&& a[i - 1]< a[i + 1]) return 2;
return 0;
}
int main()
{
int p1, p2, p3;
cin >> p1 >> p2 >> p3;
string s={'\0'}, s0 = {'\0'};
cin >> s;
for (int i = 1;s[i+1]!='\0';i++)
{
if (s[i] == '-' && judge(s, i))
{
char a1 = s[i - 1];
char a2 = s[i + 1];
if (p1 == 3) for (int i = 1;i < p2 * (a2 - a1);i++) s0 += '*';
else
{
if (p3 == 1)
{
a1++;
while (a1 < a2)
{
for (int i = 1;i <= p2;i++)
s0 += a1;
a1++;
}
}
if (p3 == 2)
{
a2--;
while (a1 < a2)
{
for (int i = 1;i <= p2;i++)
s0 += a2;
a2--;
}
}
if (p1 == 2 && judge(s, i) == 1)
for (int i = 1;s0[i] != '\0';i++) s0[i] += ('A' - 'a');
}
s.replace(i, 1, s0);
s0 = { '\0' };
}
}
cout << s;
return 0;
}
带入测试点数据并没发现问题,但一直没法AC,求大佬指正