2708HDU

	1.多个测试样例,每一个是四行字符串
	2.在图表的每一行的最后一颗星之后,不能有空格
	3.每两个测试样例之间应该有换行
	总体思路:1.读入字符串
	2.找出字母出现次数的最大值max
	3.图表除去最后的字母部分,一共应该有max行
	4.画图
#include<iostream>
using namespace std;
int main() {
	string a[4];
	int zimu[26];
	while(getline(cin,a[0])) {
		getline(cin,a[1]);
		getline(cin,a[2]);
		getline(cin,a[3]);
		for(int i=0; i<26; i++) {
			zimu[i]=0;
		}
		for(int i=0; i<4; i++) {
			for(int j=0; j<a[i].size(); j++) {
				if(a[i][j]>='A'&&a[i][j]<='Z') {
					zimu[a[i][j]-'A']++;
				}
			}
		}
		int max=0;
		for(int i=0; i<26; i++) {
			if(zimu[i]>max)max=zimu[i];
		}
		for(int i=max; i>=1; i--) {
			for(int j=0; j<26; j++) {
				if(zimu[j]>=i) {
					cout<<"*";
					bool flag=true;
					for(int k=j+1; k<26; k++) {
						if(zimu[k]>=i) {
							flag=false;
							break;
						}
					}
					if(flag)
						break;
				} else cout<<" ";
				if(j!=25)
					cout<<" ";
			}
			cout<<endl;
		}
		for(int i=0; i<26; i++) {
			char c='A'+i;
			cout<<c;
			if(i!=25)cout<<" ";
		}
		cout<<endl;
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值