时间限制 内存限制
1000 ms 65536 KB

# 题目描述

给定两个长度相同的字符串 xxyy,定义一个新字符串 zz。其构造规则:对于 zz 的第 ii 个字符,zi=max(xi,yi)z_i=\max(x_i,y_i),其中 max\max 表示 ASCII 较大的字符。

例如, x = "abz"y = "xyc" ,则 z = "xyz"

现在,请你根据输入的 xxyy,输出字符串 zz

# 输入格式

不定组输入,保证不超过 2020 组。

每组输入第一行,输入一个只由小写字母组成的字符串,保证字符串长度不超过 10001000

第二行,输入一个只由小写字母组成的字符串,保证字符串长度和该组输入第一行长度相同。

# 输出格式

对每组输入输出一行,表示生成的字符串 cc

# 输入样例

abz
xyc
mnop
klqr

# 输出样例

xyz
mnqr

# 题解:模拟

直接按照题意模拟即可。

时间复杂度O(L)O(L),其中 LL 是字符串长度之和。

参考代码:

#include <stdio.h>
#include <string.h>
char a[1010], b[1010];
char max(char a, char b)
{
    return (a > b) ? a : b;
}
int main()
{
    // freopen("Y.in", "r", stdin);
    // freopen("Y.out", "w", stdout);
    while (gets(a) != NULL && gets(b) != NULL)
    {
        int len = strlen(a);
        for (int i = 0; i < len; ++ i)
            printf("%c", max(a[i], b[i]));
        
        puts("");
    }
    return 0;
}