求求大佬救救孩子,全哇了!
查看原帖
求求大佬救救孩子,全哇了!
518042
q1067780090楼主2022/2/14 14:23
#include<iostream>
#include<vector>
#include<sstream>
#include<stack>
#include<algorithm>
#include<cmath>
#include<set>
#include<map>
#include <list>
#include<cstdio>
#include<cstring>

using namespace std;

map<char, int>mymap;

vector<string>myv;
int arr[27];

int n = 4;


int main()
{
	string s;
	string temp;

	//读取四行到s
	while (n--)
	{
		getline(cin, temp);
		s.append(temp);
	}

	//将字母添加到map
	for (int i = 0; i < s.size(); i++)
	{
		if (s[i] >= 'A' && s[i] <= 'Z')
		{
			mymap[s[i]]++;
		}
	}

	//将每个字符出现的次数放到arr里面,arr下标0对应A
	char c = 'A';
	for (int i = 0; i < 26; i++)
	{
		arr[i] = mymap[c++];
	}

	//得到最大高度
	int maxsize = 0;
	for (int i = 0; i < 26; i++)
	{
		maxsize = max(maxsize, arr[i]);
	}
	

	//得到结果ans
	string ans;
	for (int i = 0; i < maxsize; i++)
	{
		for (int j = 25; j >=0; j--)
		{
			
			if (j == 25 && arr[j] != 0)
			{
				ans += "*";
				arr[j]--;
			}
			else if (arr[j] != 0)
			{
				ans += " *";
				arr[j]--;
			}
			else
			{
				ans += "  ";
			}
			
		}
		ans += '\n';
	}
	
	//翻转
	reverse(ans.begin(), ans.end());
	cout << ans << endl;

	c = 'A';
	for (int i = 0; i < 26; i++)
	{
		if (i == 25)
		{
			cout << c++;
			break;
		}
		cout << c++ << " ";

	}
	


	
	return 0;

}

2022/2/14 14:23
加载中...