大佬求助,一直找不出问题
查看原帖
大佬求助,一直找不出问题
827730
HOcop楼主2023/2/7 23:04

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,求大佬指正

2023/2/7 23:04
加载中...