全RE和超时,。
查看原帖
全RE和超时,。
1284815
canwen楼主2024/4/8 00:11
#include<bits/stdc++.h>
using namespace std;
int zimu[30][400],tmp[30][400];
int tj[30];
int main(){
	int flag=0;
	while(1){
		if(flag==4) break;
		char a=getchar();
		if(a=='\n') flag++;
		if(a>='A'&&a<='Z') tj[a-'A'+1]++;
	}
	//打印统计次数
	//cout<<"接下来打印次数:"<<endl;
	//for(int i=1;i<=26;i++) cout<<"i="<<i<<" "<<tj[i]<<endl; 
	 
	for(int i=1;i<=26;i++){
		zimu[i][1]=i;
	}
	
	for(int i=1;i<=26;i++){
		if(tj[i]==0) continue;
		int j,t=2;
		for(j=1;j<=tj[i];j++){
			zimu[i][j+1]=-1;
		}
		if(zimu[i][j+1]) {
			zimu[i][j+2]='\0';
		}else{
			zimu[i][j+1]='\0';
		}
	}
	//打印统计次数
/*	for(int i=1;i<=26;i++) cout<<"i="<<i<<" "<<tj[i]<<endl; 
	for(int i=1;i<=26;i++){
	//	cout<<(char)('A'+zimu[i][1]-1);
		for(int j=1;zimu[i][j]!='\0';j++){
			cout<<zimu[i][j];
		//	cout<<"*";
		}
		cout<<endl;
	}*/
	int max=0;
	for(int i=1;i<=26;i++){
		if(tj[i]>max) max=tj[i];
	}
	//cout<<max<<endl;
	for(int j=max+1;j>=1;j--){
		for(int i=1;i<=26;i++){
			if(zimu[i][j]>=1&&zimu[i][j]<=26) cout<<(char)('A'+zimu[i][j]-1);
			else if(zimu[i][j]==-1)cout<<"*";
			else if(zimu[i][j+1]==-1)cout<<" ";
		}
		cout<<endl;
	}
	return 0;
}
2024/4/8 00:11
加载中...