• 猿辅导2019校招技术类笔试题 编程题2:拍照队形


    拍照队形
     

    时间限制:1秒

    空间限制:32768K

    猿辅导公司的 N位(N>=4)研发同学组织了一次秋游活动,某同学带了个无人机在高空拍照,
    活动结束时,先拍了一张所有同学排成公司猴头Logo的照片, 接着有人提议再排成“猿”的首字母Y字形来拍一张合照。
     
    用字符串中的每一个字符(不是换行符或结束符'')代表一位老师,输出排好后的队形。
    要求 Y字除去中心点外,上下半部分等高,按照从左到右,从上到下进行排序。队形中没人的部分用空格占位。
    输入数据保证可以排出一个完整的Y字,即长度为 3k+1 (k>=1)
     
    例如: 7个 x ,排成队形为(为了方便说明,这里用‘-’代替空格):
    x---x
    -x-x
    --x
    --x
    --x
     
     
    输入描述:
    输入数据有两行,第一行输入N(N<=1000),表示字符串长度。
    第二行输入字符串。

    输出描述:
    用字符串表示的排好的队形,没人处用空格(' ')占位,行尾不能有多余字符,即每行最后一个字符(除了换行符以外),为字符串中代表该老师的字符。

    输入例子1:
    4
    a3f/

    输出例子1:
    a 3
     f
     /

    输入例子2:
    7
    abcdefg

    输出例子2:
    a   b
     c d
      e
      f
      g

    输入例子3:
    10
    iiiiiiiiii

    输出例子3:
    i     i
     i   i
      i i
       i
       i
       i
       i



    思路分析:

    因为输入的数n要满足 n=3k+1(k>=1)

      例如: 7个 x ,排成队形为(为了方便说明,这里用‘-’代替空格):
      x---x
      -x-x
      --x
      --x
      --x
    这时: n=7,k=(n-1)/3=2

    根据测试用例得以下规律:

    Y型分为一排站两人 和 一排站一人 上下 两部分:

    上半部分:
    ①一排站两个,共需站k排
    ②第i排的第一个人前面有i个空位置(空格)
    ③第i排的第一个人与第二个位置之间有((k-i)*2)-1个空位置(空格)

    下半部分:
    ④每排的那个人前面都需留k个空位置(空格)

    根据以上四条规律,
    Java 代码如下:
    import java.util.Scanner;
    public class Main{
        public static void main(String[] args) {
            Scanner sca = new Scanner(System.in);
            int n = sca.nextInt();
            sca.nextLine();  //不接收n后面的空行
            String str = sca.nextLine();
            String[] arr = str.split("");
            int k = (n-1)/3;for (int i = 0; i < k*2; i=i+2) {
                
                for (int j = 0; j < i; j++) {
                    System.out.print(" ");
                }
                System.out.print(arr[i]);
                for (int j = 0; j < (k-i)*2-1; j++) {
                    System.out.print(" ");
                }
                System.out.print(arr[i+1]);
                System.out.println();
            }
            for (int i = temp*2; i < arr.length; i++) {
                for (int j = 0; j < k; j++) {
                    System.out.print(" ");
                }
                System.out.print(arr[i]);
                System.out.println();
            }
        }
    }
  • 相关阅读:
    Java中的国际化
    springcloud介绍
    SpringMVC之请求和响应
    JAVA坦克大战系列10-高效雷达(下)
    CF920F SUM and REPLACE
    luoguP4141 消失之物
    luoguP2843 暗杀
    luoguP5521 [yLOI2019] 梅深不见冬
    CF940E Cashback
    CF1051D Bicolorings
  • 原文地址:https://www.cnblogs.com/l199616j/p/10406799.html
Copyright © 2020-2023  润新知