首页 > 试题广场 >

编排字符串

[编程题]编排字符串
  • 热度指数:8429 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

请输入字符串,最多输入个字符串,要求后输入的字符串排在前面,例如

输入:EricZ

输出:1=EricZ

输入:David

输出:1=David 2=EricZ

输入:Peter

输出:1=Peter 2=David 3=EricZ

输入:Alan

输出:1=Alan 2=Peter 3=David 4=EricZ

输入:Jane

输出:1=Jane 2=Alan 3=Peter 4=David


输入描述:
第一行为字符串个数m,接下来m行每行一个字符床,m不超过100,每个字符床长度不超过20。


输出描述:
输出m行,每行按照样例格式输出,注意用一个空格隔开。
示例1

输入

5
EricZ
David
Peter
Alan
Jane

输出

1=EricZ
1=David 2=EricZ
1=Peter 2=David 3=EricZ
1=Alan 2=Peter 3=David 4=EricZ
1=Jane 2=Alan 3=Peter 4=David
Java 使用Stack
import java.util.Scanner;
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        Stack<String> stack = new Stack<>();
        for (int i = 0; i < n; i++) {
            String s = scanner.next();
            stack.remove(s);
            stack.push(s);
            for (int j = 1; j <= Math.min(stack.size(),4); j++) 
                System.out.print(j+"="+stack.get(stack.size()-j)+" ");
            System.out.println();
        }
    }
}


编辑于 2020-03-20 10:01:23 回复(0)
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class test {
    static List<String> list = new ArrayList<String>();
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);    
        int i = sc.nextInt();
        while(i>0){
            String str = sc.next();
            System.out.println(inputString(str));
            i--;
        }
    }
    public static String inputString(String inputStr){
        list.add(inputStr);
        String str = "";
        for(int i = list.size(); i>0 ; i--){
            str += ((list.size()+1-i) + "="+list.get(i-1)+" ");
        }
        String[] strArray = str.split(" ");
        String string = "";
        if(strArray.length > 4){
            for(int i = 0;i<4;i++){
                string += (strArray[i]+" ");
            }
            return string;
        }
        
        return str;
    }   
}

发表于 2019-04-04 15:34:58 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        List<String> list = new ArrayList<String>();
        int m = sc.nextInt();
        if(m>100) return;
        for(int j = 0;j<m;j++){
            int count = 0;
            String s = sc.next();
            if(s.length()>20) return;
            list.add(0,s);
            for(int i = 0;i<list.size();i++){
                if(count>3) break;
                System.out.print((i+1)+"="+list.get(i)+" ");
                count++;
            }
            System.out.println();
        }
    }
}
感觉写的非常nice,真的
发表于 2019-03-30 12:22:23 回复(0)
import java.util.Scanner;
public class Main{
    public static void main(String [] args){
        Scanner sc=new Scanner(System.in);
        int m=sc.nextInt();
        sc.nextLine();
        String [] str=new String [100];
        for(int i=0;i<m;i++){
            str[i]=sc.nextLine();
        }
        for(int j=0;j<m;j++){
            if(j==0){
                System.out.println("1="+str[0]);
            }else if(j==1){
                System.out.println("1="+str[1]+" 2="+str[0]);
            }else if(j==2){
                System.out.println("1="+str[2]+" 2="+str[1]+" 3="+str[0]);
            }else {
                System.out.println("1="+str[j]+" 2="+str[j-1]+" 3="+str[j-2]+" 4="+str[j-3]);
            }
        }
        
        
        
    }
}

发表于 2019-03-19 19:11:52 回复(0)
import java.util.*;
public class Main{
    private static int flag = 0;
    public static void main(String[] args){
        int num = 0;
        Scanner in = new Scanner(System.in);
        num = in.nextInt();
        String[] input = new String[4];
        for(int i = 0; i < 4; i++){
            input[i] = "";
        }
        while(in.hasNext()){
            insert(input, in.next());
        }
        
    }
    public static void insert(String[] strs, String str){
        strs[flag] = str;
        int tmp = flag;
        flag = (flag + 1)% 4;
        int count = 1;
        while(strs[tmp] != "" && count < 5){
            System.out.print(count + "=" + strs[tmp]+ " ");
            tmp = (tmp - 1 + 4) % 4;
            count++;
        }
        System.out.println();
    }
}

发表于 2019-03-07 14:44:54 回复(0)