Skip to content

15. 神秘字符

时间限制:1.000S 空间限制:32MB

题目描述

考古学家发现墓碑上有神秘的字符。经过仔细研究,发现原来这是开启古墓入口的方法。 墓碑上有2行字符串,其中第一个串的长度为偶数,现在要求把第2个串插入到第一个串的正中央,如此便能开启墓碑进入墓中。

输入描述

输入数据首先给出一个整数n,表示测试数据的组数。(整个输入中,只有一个n) 然后是n组数据,每组数据2行,每行一个字符串,长度大于0,小于50,并且第一个串的长度必为偶数。

输出描述

请为每组数据输出一个能开启古墓的字符串,每组输出占一行。

输入示例

2

asdf

yu

rtyu

HJK

输出示例

asyudf

rtHJKyu

解法一(模拟)

思路分析:

  1. 根据题目意思模拟即可

实现代码如下:

java
public class k_15_MysteriousCharacters {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 读取测试数据组数
        String number = in.nextLine();
        int n = Integer.parseInt(number);
        while (n-- > 0) {
            // 读取输入的测试数据
            String a = in.nextLine();
//            System.out.println(a);
            String b = in.nextLine();
//            System.out.println(b);
            System.out.println(middleInsertStr(a, b));
        }
    }
    private static String middleInsertStr(String a, String b) {
        StringBuilder result = new StringBuilder();
        int len = a.length();
        int middle = len/2;
        for (int i = 0; i < len; ++ i) {
            if (i == middle) {
                result.append(b);
            }
            result.append(a.charAt(i));
        }
        return result.toString();
    }
}

运行结果如下:

运行时间: 396ms 消耗内存: 14212kb

复杂度分析:

  • 时间复杂度: O(m+n)
  • 空间复杂度: O(1)