• P3742 umi的函数


    题目背景

    umi 找到了一个神秘的函数 f。

    题目描述

    这个函数接受两个字符串 s1,s2。这些字符串只能由小写字母组成,并且具有相同的长度。这个函数的输出是另一个长度与 s1,s2 相同的字符串 g。g 的第 i 个字符等于 s1 的第i 个字符和 s2 的第 i 个字符的最小值,简单来说,g[i]=min(s1[i],s2[i])。

    例如:f("ab","ba")= "aa", f("nzwzl","zizez")="niwel".

    她现在有两个相同长度的只有小写字母的字符串 x,y。找出任何一个满足 f(x,z)=y 的

    字符串 z。如果找不到这样的字符串的话,请输出-1。

    输入输出格式

    输入格式:

    第一行给出以下两个字符串的长度 n。

    第二行给出一个字符串 x。

    第三行给出一个字符串 y。

    输出格式:

    第一行输出一个字符串,代表你找到的符合条件的字符串。找不到的话,请输出-1。

    输入输出样例

    输入样例#1:
    2
    ab
    aa
    输出样例#1:
    ba
    输入样例#2:
    5
    nzwzl
    niwel
    输出样例#2:
    xiyez
    
    输入样例#3:
    2
    ab
    ba
    
    输出样例#3:
    -1

    说明

    对于 100%的数据,1<=n<=100。

    暴力模拟,

    其中有一些思维的细节,。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<algorithm>
     6 #define lli long long int 
     7 using namespace std;
     8 const int MAXN=101;
     9 void read(int &n)
    10 {
    11     char c='+';int x=0;bool flag=0;
    12     while(c<'0'||c>'9')
    13     {c=getchar();if(c=='-')flag=1;}
    14     while(c>='0'&&c<='9')
    15         x=x*10+(c-48),c=getchar();
    16     flag==1?n=-x:n=x;
    17 }    
    18 int n;
    19 char a[MAXN],b[MAXN];
    20 int main()
    21 {    
    22     read(n);
    23     scanf("%s%s",a,b);
    24     for(int i=0;i<n;i++)
    25         if(a[i]<b[i])
    26         {
    27             printf("-1");
    28             return 0;
    29         }
    30     for(int i=0;i<n;i++)
    31     {
    32         if(a[i]==b[i])
    33             cout<<a[i];
    34         else 
    35             cout<<b[i];
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    多态
    封装,继承,多态
    基本类型和引用类型的区别
    第七天 面向对象
    什么是Java线程池
    游戏内核架构
    放松
    静不下来心写代码
    速度和正确率
    理顺思路
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/7159576.html
Copyright © 2020-2023  润新知