本地样例测试过了,没有问题,下载结点测试也没有问题,可是提交就全WA了,请问是哪里做错了,真诚请教,谢谢。
思路,先是按字符串顺序遍历字母表,若相同就加一。然后输出时先判断字母表最大值,以去掉多余的换行,然后判断字母在此行是否有*号,有则输出无则空格。
代码如下:
```cpp
#include"bits/stdc++.h" using namespace std; typedef long long ll; const ll M = 1001; ll sum[27]; string s1,s2,s3,s4,s5; char a[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
void func(string s){ ll i,j,l;
l=s.length();
for( i=0;i<l;i++)
{
for(j=0;j<=25;j++)
{
if(a[j]==s[i]) sum[j]++;
}
}
}
int main(){ ll i,j,t;
getline(cin,s1);
getline(cin,s2);
getline(cin,s3);
getline(cin,s4);
func(s1);
func(s2);
func(s3);
func(s4);
t=0;
for(i=0;i<=25;i++)
{
if(sum[i]>t) t=sum[i];
}
for(i=t;i>=0;i--)
{
if(i==0)
{
for(int k;k<26;k++) cout<<a[k]<<" ";
}
else
{
for(j=0;j<=25;j++)
{
if(sum[j]>=i) cout<<"* ";
else cout<<" ";
}
cout<<endl;
}
}
return 0;
}
-------
本地环境devC++。