您当前的位置: 首页 >  Java

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

文字框架拼接(洛谷P4327题题解,Java语言描述)

星拱北辰 发布时间:2020-01-31 21:51:19 ,浏览量:0

题目要求

P4327题目链接

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

分析

这种横向拼接的题比较不好直接处理,因为你必须把每一行处理好再打印出来。

不过好在本题是规律题: 我们把每4列切成一个模块,最后补上最后一列就可以。 但是,第1组开头是#,需要先处理一下呢。

后面的各组按照mod3处理:

mod3==0:

“…#.” “.#.#” “*.?.” “.#.#” “…#.”

mod3==1:

“…#.” “.#.#” “#.?.” “.#.#” “…#.”

mod3==2:

“…*.” “.*.*” “*.?.” “.*.*” “…*.”

然后就分别把这一组组的String进行replaceAll()以后,替换掉原有String,再加入StringBuilder里面。 最后如上所言,补上去最后一列就行。

具体的看代码吧~~

AC代码(Java语言描述)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] alphabets = scanner.nextLine().split("");
        scanner.close();
        String demo1 = "..#.", demo6  = "..*.", demo11 = "..#.";
        String demo2 = ".#.#", demo7  = ".*.*", demo12 = ".#.#";
        String demo3 = "#.?.", demo8  = "*.?.", demo13 = "*.?.";
        String demo4 = ".#.#", demo9  = ".*.*", demo14 = ".#.#";
        String demo5 = "..#.", demo10 = "..*.", demo15 = "..#.";
        StringBuilder line1 = new StringBuilder(demo1);
        StringBuilder line2 = new StringBuilder(demo2);
        StringBuilder line3 = new StringBuilder(demo3.replaceAll("\\?", alphabets[0]));
        StringBuilder line4 = new StringBuilder(demo4);
        StringBuilder line5 = new StringBuilder(demo5);
        for (int i = 1; i             
关注
打赏
1660750074
查看更多评论
0.0455s