題目:
給定一個長度不超過 104 的、僅由英文字母構成的字符串。請將字符重新調整順序,按 PATestPATest....
這樣的順序輸出,並忽略其它字符。當然,六種字符的個數不一定是一樣多的,若某種字符已經輸出完,則餘下的字符仍按 PATest 的順序打印,直到所有字符都被輸出。
輸入格式:
輸入在一行中給出一個長度不超過 104 的、僅由英文字母構成的非空字符串。
輸出格式:
在一行中按題目要求輸出排序後的字符串。題目保證輸出非空。
輸入樣例:
redlesPayBestPATTopTeePHPereatitAPPT
輸出樣例:
PATestPATestPTetPTePePee
思路:
題目很簡單,用心讀題就可以找到解題的思路;
代碼如下:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char a[10100];
int P,A,T,e,s,t;
int main()
{
scanf("%s",a);
int l=strlen(a);
P=A=T=e=s=t=0;//記錄每一個字母出現的次數;
int maxx=0;
for(int i=0; i<l; i++)
{
if(a[i]=='P')
P++;
else if(a[i]=='A')
A++;
else if(a[i]=='T')
T++;
else if(a[i]=='e')
e++;
else if(a[i]=='s')
s++;
else if(a[i]=='t')
t++;
}
maxx=max(max(max(max(max(max(maxx,P),A),T),e),s),t);
while(maxx--)
{
if(P!=0)
{
printf("P");
P--;
}
if(A!=0)
{
printf("A");
A--;
}
if(T!=0)
{
printf("T");
T--;
}
if(e!=0)
{
printf("e");
e--;
}
if(s!=0)
{
printf("s");
s--;
}
if(t!=0)
{
printf("t");
t--;
}
}
printf("\n");
return 0;
}