大佬能给看一下哪里出错了吗,样例可以过,但测试点过不了,自己过了一遍也没看出错在哪里
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int p1, p2, p3;
string s;
string ans;
void _p_1_2_3(char c1,char c2)
{
int pos1 = ans.size();
int q = c2 - c1 - 1;
if (p1 == 1)
{
for (int i = (int)c1+1; i < (int)c2; i++)
{
for (int j = 0; j < p2; j++)
ans += (char)i;
}
}
else if (p1 == 2)
{
for (int i = c1-'a'+65+1; i < c2-'a'+65; i++)
{
for (int j = 0; j < p2; j++)
ans += (char)i;
}
}
else
{
for (int i = (int)c1 + 1; i < (int)c2; i++)
{
for (int j = 0; j < p2; j++)
ans += '*';
}
}
if (p3 == 2)
reverse(ans.begin() + pos1, ans.begin() + pos1 + q*p2);
}
int main()
{
cin >> p1 >> p2 >> p3;
getchar();
getline(cin, s);
for (int i = 0; i < s.size(); i++)
{
if (s[i] != '-')
ans += s[i];
else if (s[i] == '-' && s[i + 1] - s[i - 1] == 1)
continue;
else if (s[i] == '-' && s[i + 1] - s[i - 1] <= 0)
ans += s[i];
else if (s[i] == '-' && (s[i - 1] >= '0' && s[i - 1] <= '9') && (s[i + 1] >= 'a' && s[i + 1] <= 'z'))
ans += s[i];
else
_p_1_2_3(s[i - 1], s[i + 1]);
}
cout << ans << endl;
return 0;
}