题解 | #字符统计#
字符统计
http://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0
#include<iostream>
#include<map>
using namespace std;
int main()
{
string a;
while(getline(cin,a))
{
int b=a.length();
string c=a;
for(int i=0;i<b-1;i++)
{
for(int j=i+1;j<b;j++)
{
if(a[i]==a[j])
{
for(int m=j;m<b-1;m++)
{
a[m]=a[m+1];
}
j--;
b--;
}
}
}
int e[1000]={0};
for(int i=0;i<b;i++)
{
for(int j=0;j<c.length();j++)
{
if(a[i]==c[j])
{
e[i]++;
}
}
}
for(int i=0;i<b-1;i++)
{
for(int j=i+1;j<b;j++)
{
if(e[i]<e[j])
{
int f=e[i];
e[i]=e[j];
e[j]=f;
char g=a[i];
a[i]=a[j];
a[j]=g;
}
else if(e[i]==e[j]&&a[i]>a[j])
{
int f=e[i];
e[i]=e[j];
e[j]=f;
char g=a[i];
a[i]=a[j];
a[j]=g;
}
}
}
for(int i=0;i<b;i++)
{
cout<<a[i];
}
}
}
#include<map>
using namespace std;
int main()
{
string a;
while(getline(cin,a))
{
int b=a.length();
string c=a;
for(int i=0;i<b-1;i++)
{
for(int j=i+1;j<b;j++)
{
if(a[i]==a[j])
{
for(int m=j;m<b-1;m++)
{
a[m]=a[m+1];
}
j--;
b--;
}
}
}
int e[1000]={0};
for(int i=0;i<b;i++)
{
for(int j=0;j<c.length();j++)
{
if(a[i]==c[j])
{
e[i]++;
}
}
}
for(int i=0;i<b-1;i++)
{
for(int j=i+1;j<b;j++)
{
if(e[i]<e[j])
{
int f=e[i];
e[i]=e[j];
e[j]=f;
char g=a[i];
a[i]=a[j];
a[j]=g;
}
else if(e[i]==e[j]&&a[i]>a[j])
{
int f=e[i];
e[i]=e[j];
e[j]=f;
char g=a[i];
a[i]=a[j];
a[j]=g;
}
}
}
for(int i=0;i<b;i++)
{
cout<<a[i];
}
}
}
查看6道真题和解析