0?!
查看原帖
0?!
519169
lbrsygdsb123楼主2022/2/22 22:43
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
bool chk(char a, char b){
	int q, w;
	if(a >= 'a' && a <= 'z')
		q = 1;
	if(a >= 'A' && a <= 'Z')
		q = 2;
	if(a >= '0' && a <= '9')
		q = 3;
	if(b >= 'a' && b <= 'z')
		w = 1;
	if(b >= 'A' && b <= 'Z')
		w = 2;
	if(b >= '0' && b <= '9')
		w = 3;
	if(q == w)
		return true;
	return false;
}
int p1, p2, p3, cur = 1;
string s[1000005], ans;
char c;
int main(){
	cin >> p1 >> p2 >> p3;
	c = getchar();
	while((c = getchar()) != '\n'){
		if(c == '-'){
			cur ++;
			continue;
		}
		s[cur] += c;
		//cout << s[cur] << ' ';
	}
	ans = s[1];
	//for(int i = 1;i <= cur;i ++)
		//cout << s[i] << endl;
		
	for(int i = 2;i <= cur;i ++){
		string x;
		for(int j = int(s[i-1][s[i-1].size()-1]) + 1;j < int(s[i][0]);j ++){
			//cout << j << endl;
			for(int k = 1;k <= p2;k ++){
				if(p1 == 1){
					if(j >= '0' && j <= '9')
						x += char(j);
					else
						x += char((j >= int('a') && j <= int('z')) ? (j) : (j + 32));
				}
				if(p1 == 2){
					if(j >= '0' && j <= '9')
						x += char(j);
					else
						x += char((j >= int('A') && j <= int('Z')) ? (j) : (j - 32));
				}
				if(p1 == 3)
					x += '*';
			}
		}
		if((int(s[i-1][s[i-1].size()-1]) > int(s[i][0])) 
		|| int(s[i-1][s[i-1].size()-1]) == int(s[i][0]))
			x = '-';
		//cout << x <<' ';
		if(!chk(s[i-1][s[i-1].size()-1], s[i][0])){
			//cout << 1;
			x = '-';
		}
		//cout << x << endl;
		//cout << s[i-1][s[i-1].size()-1] << ' '<<s[i][0]<<endl;
		if(p3 == 2)
			reverse(x.begin(), x.end());
		ans += x;
		ans += s[i];
	}
	cout << ans;

	return 0;
}

救,下载了数据, 输入输出一样,但为什么爆零??

2022/2/22 22:43
加载中...