7-7 输出GPLT(20 分)

7-7 输出GPLT(20 分)
给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT….这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。

输入格式:

输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。

输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。

输入样例:

pcTclnGloRgLrtLhgljkLhGFauPewSKgt
输出样例:

GPLTGPLTGLTGLGLL

import java.util.ArrayList;
import java.util.Scanner;
public class Main {
    public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    String str=sc.nextLine(),t;
    sc.close();
    ArrayList<Character> Glist=new ArrayList<>();
    ArrayList<Character> Plist=new ArrayList<>();
    ArrayList<Character> Llist=new ArrayList<>();
    ArrayList<Character> Tlist=new ArrayList<>();
    t=str.toUpperCase();
    //System.out.println(t);
    for(int i=0;i<t.length();i++){
        if(t.charAt(i)=='G' ){
            Glist.add(t.charAt(i));
        }
        if((t.charAt(i)=='P')){
            Plist.add(t.charAt(i));
        }
        if((t.charAt(i)=='L')){
            Llist.add(t.charAt(i));
        }
        if((t.charAt(i)=='T')){
            Tlist.add(t.charAt(i));
        }
    }
        int maxSize=Glist.size();
        if (Plist.size() > maxSize) {
            maxSize = Plist.size();
        }
        if (Llist.size() > maxSize) {
            maxSize = Llist.size();
        }
        if (Tlist.size() > maxSize) {
            maxSize = Tlist.size();
        }
        for(int i=0;i<maxSize;i++){
            if(i<Glist.size()){
                System.out.print(Glist.get(i));
            }
            if(i<Plist.size()){
                System.out.print(Plist.get(i));
            }
            if(i<Llist.size()){
                System.out.print(Llist.get(i));
            }
            if(i<Tlist.size()){
                System.out.print(Tlist.get(i));
            }
        }

}
}

下面是第二次做的代码:用的通俗简单的方法来实现,代码贴出来,仅供大家参考,觉得都是简单的语法知识,没有什么难度,大家在做题的时候,要善于积累,勤于思考,善于归纳,相信大家的编程水平会提升很快

#include<bits/stdc++.h>
using namespace std;
int main(){
    string str;
    int a=0,b=0,c=0,d=0;
    cin>>str;
    int length=str.size();
    for(int i=0;i<length;i++){
        if(str[i]=='G' || str[i]=='g'){
            a++;
        }
        if(str[i]=='P' || str[i]=='p'){
            b++;
        }
        if(str[i]=='L' || str[i]=='l'){
            c++;
        }
        if(str[i]=='T' || str[i]=='t'){
            d++;
        }
    }
    while(a!=0 || b!=0 || c!=0 || d!=0){
        if(a!=0){
            printf("G");
            a--;
        }
        if(b!=0){
            printf("P");
            b--;
        }
        if(c!=0){
            printf("L");
            c--;
        }
        if(d!=0){
            printf("T");
            d--;
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_38505045/article/details/80163549